|
Creating a database this way:
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
sSql.Format( "CREATE TABLE Sounding ([Pressure (mb)] FLOAT,[Height(m)] FLOAT)");
database.ExecuteSQL(sSql);
sSql.Format("INSERT INTO Sounding VALUES('%f','%f')",mPressure,mHeight);
database.ExecuteSQL(sSql);
....
If mHeight is 17.60 it is inserted 17600000, if I change to '%.f' it is inserted 17, and if '%.2f' 1760. What is the solution to insert the right decimals?
Thanks.
|
|
|
|
|
There are two point here:
1.Are you sure that mPressure and mHeight are float value or maybe you define them as int.
2.It could be in your database.You set the Scale of it tp 0.Its is zero by default so you forgot to change it,So SQLServer or access omit them.
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Yes, mPressure and mHeight are float values.
How could I change the default Scale?
Thank you.
|
|
|
|
|
Do you use Access or SQLServer?
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Well, I'm using it into an MFC app, with Visual C++, and getting the ODBC Microsoft Excel Driver. It´s the first time I include a database utility in an applicattion, so I don´t know exactly what I'm using. If it helps, I use Cdatabase class with function member ExcecuteSQL.
Thanks.
|
|
|
|
|
José Luis Sogorb wrote:
ODBC Microsoft Excel Driver
I never used it,but I don't know how do you want to create table or other things in it. May I know why do you choose Excel driver?!!!!!!!!!!
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Hi,
I'm trying to write a binary data from a recordset field into a file. I'm
creating an ADODB.Stream object (adTypeBinary), write the rs field into it
and then save it to a file.
The problem is that the file is not written well; it's size is double than
it should be.
Can somebody help me?
Thanks!
Here's a part of the code:
Dim objStream
Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 1 'adTypeBinary
objStream.Open
objStream.Write rs.Fields.Item("Object").Value
objStream.SaveToFile filePath, 2
objStream.Close
Set objStream=nothing
|
|
|
|
|
How will Yukon change the way we develop database apps? We are in the requirements gathering stage of a new product development effort and we're thinking that since Yukon will be out before we are shipping, that we may want to take advantage of it's new and supposedly revolutionary capabilities.
I'm particularly interested in how the inclusion of the .NET CLR into the database will be implemented. I get the impression from the articles that I've read that you'll be able to bypass some of the mid-layer technologies necessary to now do data access. Certainly we won't need TSQL, but what else will we be able to bypass? SQL itself? ADO/ADO.NET? OLE DB/ODBC? I wonder, will we be able to implement a data-connected class in C# running on Yukon almost exactly as we would implement an internal type within a windows app and have Yukon automatically implement the actual data storage in the database? In other words, will we be able to treat data just like objects? If so, this is a huge pardigm shift and it bears investigating before we start developing with traditional techniques.
Has anyone played with Yukon yet? Is it included in the latest MSDN subscription?
|
|
|
|
|
I am VERY new to C# and ADO.NET. Can someone tell me why I get a namespace error with the following code....
using System.Data.ADO;
I have tried downloading a couple of ADO.NET examples, but there always seems to be missing references...
ie) System.Configuration
System.Diagnostics
Is there a project setting to change, or maybe missing dlls?
Thanks for any help ... Paul
|
|
|
|
|
If you want to use ADO.NET only add System.Data . Not System.Data.ADO.
Paul Silvernail wrote:
System.Configuration
System.Diagnostics
These are somethings different from ADO.NET.You don't need them.
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Thanks Mazy,
I have sucessfully opened a jet database with OleDbConnection ... were cooking on the front burner now!!
|
|
|
|
|
I am designing a distributed application which is implemented using remoting. Basically the server side remote object is used to retrieve information from the database.
Currently in this object i am using a single dataset to store all data, which runs fine as we have not yet tested against large volumes of data.
Now the thing is that i would like the application to be scalable for which i might have to use things like object pooling, now if i pool my objects then each object will have a differnet instance of the dataset and there will be no synchronization between them. But i have a feeling that directly manipulating the database will degrade my performance.
Anyone have any stats, ideas or suggestions or any experience with a similar problem?
May the Source be with you
Sonork ID 100.9997 sijinjoseph
|
|
|
|
|
Avoid using large datasets in remoting applications. Even if you specify binary serialization, the contained objects (datatables, datarelations) still get serialized to HTML diffgrams (very verbose) and consume immense ammounts of memory and bandwith if many rows are involved. My experience is that this also leaks memory (although this may just have been due to costruction in the "large object heap" which seems only to be garbage collected if the moon is full). This MSDN magazine article <a href="http://msdn.microsoft.com/msdnmag/issues/02/12/CuttingEdge/default.aspx">http://msdn.microsoft.com/msdnmag/issues/02/12/CuttingEdge/default.aspx</a>[<a target=_blank title='New Window' href="http://msdn.microsoft.com/msdnmag/issues/02/12/CuttingEdge/default.aspx">^</a>] goes into much more detail, and suggests some workarounds.
We ended up loading a custom class instance (basically an arraylist of arraylits), serializing that, deserializing and reconstructing a dataset on the client side. Cut memory usage by factor of 4 and increased performance by factor of 3. No more memory leaks.
When all else fails, read the directions...
OldRob
|
|
|
|
|
Thanks a lot mate, but actually i don't actually pass the dataset over the wire at any time but still a very informative link.
Could you tell me what your experience was in using a dataset i mean for large databases with the enitre database in memory do you think it will be a good solution?
May the Source be with you
Sonork ID 100.9997 sijinjoseph
|
|
|
|
|
Depends on what you mean by large ... If you plan to keep several million rows of two or three hundred columns in memory as a read only db, I would think this would strain even a large box. Not too sure the class is thread-safe for multiple readers(enumerators...), pretty certain it is unsafe for multiple writers. We were working with a 30GB database,so no thought of keeing it in ram. Datasets/DataAdapters are not real performant for heavy insert/update use, sqlcommands with stored procs work best for this, and sqlDataReaders are much more performant for populating read-only caches...
The DataSet is a rather complex structure, carring a lot of overhead (duplicate copies of all the data, state information for every row, complete schema information... really is an in-memory db of sorts)
Also, the remoting issue is just as severe when passing data between processes in the same box (appdomain to appdomain). We were fairly convinced that this resulted in real memory leaks with datasets of 10000 rows x 300 columns or so (worse if multiple datatables adding up to this..)
OldRob
|
|
|
|
|
Hello,
I have a database design problem,
I'm using MS Access databases btw.
I have several tables, which need to be syncronised between databases.
There are 3 databases and records can be added to any of the 3 and need to
be updated on the others.
Table T1 has a primary key which is referenced by T2.
Now to make an update to a remote database I came up with the following.
Create a table called Database which has an unique ID.
Create a table called Mapping which has the following
Id (AutoNumber)
TableId - unique number 1- T1 , 2-T2
DatabaseId - Id from Database Table
RemoteId - Remote Id of this entry
LocalId - local Id
To syncronize, when a remote client connects to the local database, it goes through table T1, and looks in the Mapping table for the localId, with its DatabaseId. If it is not found, it is a new entry and creates a new T1 entry on its (remote) database. It also creates a Mapping entry on the local database and remote database.
Does this sound like a good plan?
Or are there existing methods which work better?
Cheers
John
|
|
|
|
|
I have done a db program.Using ado to access oracle806 db,I used Oracle OleDB provider to improve performance.
It's fine on my pcs(xp/98,oracle 817 client) .However ,
After release it(using vc++6.0 install shield),it does not work on some pcs.It seem program do not connect to oracle.
On others,it work well.Try connecting the oracle with SQL*PLUS,i find the net8 is ok.What's wrong with my program? I suppose the program is Oracle OleDB provider.
Help me ,please.
|
|
|
|
|
Greetings,
I am getting an exception when I use Append and adDBTimeStamp when creating a table with this parameter.
I am using visual c++ .net.
Here is my code below.
tblNew->Columns->Append(_bstr_t("MyDate"), adDBTimeStamp,0);
I get an exception when I try to create this, can anyone give me some advice?
Thanks in advance!
|
|
|
|
|
What exeption you get?And do use sql or access?
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Hello,
I am using sql server.
It doesn't give the exception name, and it skips the exception handler below.
catch(_com_error &e)
{
}
I did get it to work using "CREATE TABLE", and using a "datetime" parameter,
so I do have a workaround. But it seems that the ADOX call didn't work.
I can't seem to get my query working now. Here is a query I had previously used
using ADO to query an Access database, but does not seem to work with SQL server.
The query:
----------
USE MyTestDB
SELECT *
FROM MyTestTable
WHERE StartTime>= #10/11/2002# and StartTime <= #11/11/2002#
It complains about the "#" symbol and says it is a syntax error.
Any ideas as to what symbol I should use in it's place, or a different way
to do my query.
Thanks for answering my post!
|
|
|
|
|
Use ' instead of '#'.Access ans sqlserver have some differences in some syntax.And also I dont think you need USE MyTestDB.You have to login to that database with your connection string.For your other problem,I suggest to see the samples of MSDN about 'Append' and other functions that you use
Mazy
"And the carpet needs a haircut, and the spotlight looks like a prison break
And the telephone's out of cigarettes, and the balcony is on the make
And the piano has been drinking, the piano has been drinking...not me...not me-Tom Waits
|
|
|
|
|
Thanks for the tip about the "'" symbol, and the msdn "Append"!
|
|
|
|