2015-12-14 121 views
2

我使用delphi在MS Access中创建数据库,但是当我单击按钮将表添加到数据库时,它将语法标记为不正确。使用外键时create table语句中的语法错误

cs:='CREATE TABLE tblRecordOfGames ('+ 
    'Username Varchar CONSTRAINT FK_Username '+ 
    'REFERENCES tblUsers (Username),'+ 
    'TimeOfGame Date/Time,'+ 
    'MovesTaken Integer(3)'+ 
    'OptimalMoves Integer(3)'+ 
    'PercentageofOptimalMoves Double(5)'+ 
    'CreditsWon Integer'+ 
    'CreditsLost Integer)'; 

ADOCommand1.CommandText:=cs; 
ADOCommand1.Execute; 

我认为这与我想要添加键值的方式有问题,但我一直有一个很难找到工作的例子。

回答

1

你的一些数据类型是错误的,你错过了几个逗号。
设置字段大小/精度仅适用于TEXT和DECIMAL类型。

参见http://allenbrowne.com/ser-49.html(DDL栏)。

虽然您的CONSTRAINT有效。 :)

试试这个:

CREATE TABLE tblRecordOfGames (
    Username Text(50) CONSTRAINT FK_Username REFERENCES tblUsers (Username), 
    TimeOfGame DateTime, 
    MovesTaken Integer, 
    OptimalMoves Integer, 
    PercentageofOptimalMoves Double, 
    CreditsWon Integer, 
    CreditsLost Integer) 

注意:您要添加主键。

+0

感谢队友完美地工作,我有主键的声明作为一个单独的命令。当我遇到问题时把它拿出来。 – CMCK123

相关问题