使用FireDAC连接(Delphi Xe6)时,在MS ACCESS中创建表时出现错误。
创建了一个新的数据库文件,并使用TFDCommand或TFDQuery创建了3个表,这些表确实已创建,但我总是收到“表已存在”错误。任何建议来阻止错误被提出。
我确实包含了一个尝试中的代码...除了例程。使用FIREDAC创建表MS ACCESS
代码:
FDCommand1.CommandText.Text := 'CREATE Table [SampleData] ' +
'([SampleID] INTEGER Primary Key NOT NULL, ' +
' [RiskIDX] INTEGER NULL,' +
' [RefSampleID] Char(10) NULL,' +
' [SerialNumber] Char(60) NULL,' +
' [TestDate] DateTime NULL,' +
' [ResampleDate] DateTime NULL,' +
' [SampleDate] DateTime NULL,' +
' [SamplingPoint] Char(60) NULL,' +
' [LabTech] Char(60) NULL, SampledBy Char(60) NULL,' +
' [Status] Char(60) NULL,' +
' [Source] Char(60) NULL,' +
' [Condition] Char(60) NULL,' +
' [PlotPnt] YESNO,' +
' [Comments] Memo' +
' CONSTRAINT FKSampleId Foreign Key SerialNumber
References AssetInfo SerialNo);';
OR
FDQuery1.SQL.Text := Memo1.text; //Create table SQL command
FDQuery1.Prepare;
FDQuery1.Execute(200,0);
有了一些实验,我发现了FDCommand和FDQuery组件不会在这种情况下工作;即使你事先检查表格不存在,也是如此。 (我不太确定为什么 - 但在我看来,SQL命令发送两次,因此表存在错误)。但是,FDConnection.ExecSQL确实有效。试过并测试过(根据需要用CONSTRAINTS创建3个表格)。
问候 TomD
相关的http:/ /stackoverflow.com/q/909371/960757。 – TLama
@ kobik是的,当然,今天不是我的一天:)谢谢。 –