'0.0' is not a valid timestamp
Posted: Fri 26 Jun 2009 13:15
Hi.
The following code produces EConvertError ''0.0' is not a valid timestamp'. Can anyone (PLEASE!!) shed some light on this???
The problem only occurs when assigning the dataset to a virtual table. It does not occur if I simply attach a DBGrid to the MSQuery.
Thanks in advance,
John.
// Start of code ---------------------------------
program TimestampError;
uses
MSAccess, VirtualTable, ActiveX;
const
CONNECTION_STRING = 'Provider=SQLOLEDB.1;' +
'Integrated Security=SSPI;' +
'Data Source=localhost;' +
'Initial Catalog=master;';
var
MSConnection: TMSConnection;
MSQuery: TMSQuery;
MSVirtualTable: TVirtualTable;
begin
CoInitialize(nil);
MSConnection := TMSConnection.Create(nil);
MSConnection.ConnectString := CONNECTION_STRING;
MSQuery := TMSQuery.Create(nil);
MSQuery.Connection := MSConnection;
MSQuery.SQL.Text := 'IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE [NAME] = ''TEST'' AND TYPE = ''U'') DROP TABLE TEST';
MSQuery.Execute;
MSQuery.SQL.Text := 'CREATE TABLE TEST(RECORD_ID INT, CREATE_DATE DATETIME DEFAULT(GETDATE()))';
MSQuery.Execute;
MSQuery.SQL.Text := 'INSERT INTO TEST (RECORD_ID) VALUES (1)';
MSQuery.Execute;
MSQuery.SQL.Text := 'SELECT * FROM TEST';
MSQuery.Open;
MSVirtualTable := TVirtualTable.Create(nil);
MSVirtualTable.Assign(MSQuery); // This line throws the exception
MSVirtualTable.Open;
MSVirtualTable.Free;
MSQuery.Free;
MSConnection.Free;
CoUninitialize;
end.
The following code produces EConvertError ''0.0' is not a valid timestamp'. Can anyone (PLEASE!!) shed some light on this???
The problem only occurs when assigning the dataset to a virtual table. It does not occur if I simply attach a DBGrid to the MSQuery.
Thanks in advance,
John.
// Start of code ---------------------------------
program TimestampError;
uses
MSAccess, VirtualTable, ActiveX;
const
CONNECTION_STRING = 'Provider=SQLOLEDB.1;' +
'Integrated Security=SSPI;' +
'Data Source=localhost;' +
'Initial Catalog=master;';
var
MSConnection: TMSConnection;
MSQuery: TMSQuery;
MSVirtualTable: TVirtualTable;
begin
CoInitialize(nil);
MSConnection := TMSConnection.Create(nil);
MSConnection.ConnectString := CONNECTION_STRING;
MSQuery := TMSQuery.Create(nil);
MSQuery.Connection := MSConnection;
MSQuery.SQL.Text := 'IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE [NAME] = ''TEST'' AND TYPE = ''U'') DROP TABLE TEST';
MSQuery.Execute;
MSQuery.SQL.Text := 'CREATE TABLE TEST(RECORD_ID INT, CREATE_DATE DATETIME DEFAULT(GETDATE()))';
MSQuery.Execute;
MSQuery.SQL.Text := 'INSERT INTO TEST (RECORD_ID) VALUES (1)';
MSQuery.Execute;
MSQuery.SQL.Text := 'SELECT * FROM TEST';
MSQuery.Open;
MSVirtualTable := TVirtualTable.Create(nil);
MSVirtualTable.Assign(MSQuery); // This line throws the exception
MSVirtualTable.Open;
MSVirtualTable.Free;
MSQuery.Free;
MSConnection.Free;
CoUninitialize;
end.