我帮了一个朋友的忙,他的普通程序员病了,他给了我一份临时工作。
我正在使用RAD XE7 Delphi和MyDac为他创建一个数据库。我退休了,已经有一段时间没有使用德尔福了,那就是XE3。我可以创建数据库没有问题,但我有一个问题的表。它告诉我,在执行之前,在最后一行中有一个语法错误。我无法显示他想要的实际字段,但我几年前创建了一个表,也为我的妻子创建了一个非常老版本的MyDac。我试着用我的旧代码,得到了同样的结果。
以下是代码:
Form1.MyCommand1 := TMyCommand.Create(nil);
try
Form1.MyCommand1.Connection := Form1.MyConnection1;
Form1.MyCommand1.SQL.Add('CREATE TABLE films (');
Form1.MyCommand1.SQL.Add(' series varchar(25) default NULL, ');
Form1.MyCommand1.SQL.Add(' id int(11) default NULL, ');
Form1.MyCommand1.SQL.Add(' dvd_no int(11) default NULL, ');
Form1.MyCommand1.SQL.Add(' title varchar(40) default NULL, ');
Form1.MyCommand1.SQL.Add(' actor1 varchar(30) default NULL, ');
Form1.MyCommand1.SQL.Add(' actor2 varchar(30) default NULL, ');
Form1.MyCommand1.SQL.Add(' director varchar(40) default NULL, ');
Form1.MyCommand1.SQL.Add(' writer varchar(40) default NULL, ');
Form1.MyCommand1.SQL.Add(' season varchar(30) default NULL, ');
Form1.MyCommand1.SQL.Add(' episodes varchar(30) default NULL, ');
Form1.MyCommand1.SQL.Add(' year varchar(4) default NULL, ');
Form1.MyCommand1.SQL.Add(' genre varchar(30) default NULL, ');
Form1.MyCommand1.SQL.Add(' rating varchar(15) default NULL, ');
Form1.MyCommand1.SQL.Add(' comment longtext default NULL, ');
Form1.MyCommand1.SQL.Add(' seen char(1) default NULL, ');
Form1.MyCommand1.SQL.Add(' multisession char(1) default NULL, ');
Form1.MyCommand1.SQL.Add(');');
Form1.MyCommand1.Execute;
finally
Form1.MyCommand1.Free;
end;老实说,我已经忘记了“Form1.MyCommand1.SQL.Add(‘);”这句话实际上是为了什么,我已经尝试过多次修改它,但是没有任何结果。
我在这里显然做错了什么,但正如我说过的,已经很长时间了,80岁的时候,灰色细胞已经不是以前的样子了!
有人能帮我一下吗?
发布于 2021-04-07 06:58:11
这应该是可行的:
Form1.MyCommand1 := TMyCommand.Create(nil);
try
Form1.MyCommand1.Connection := Form1.MyConnection1;
Form1.MyCommand1.SQL.Add('CREATE TABLE films (' +
' series varchar(25) default NULL, ' +
' id int(11) default NULL, ' +
' dvd_no int(11) default NULL, ' +
' title varchar(40) default NULL, ' +
' actor1 varchar(30) default NULL, ' +
' actor2 varchar(30) default NULL, ' +
' director varchar(40) default NULL, ' +
' writer varchar(40) default NULL, ' +
' season varchar(30) default NULL, ' +
' episodes varchar(30) default NULL, ' +
' year varchar(4) default NULL, ' +
' genre varchar(30) default NULL, ' +
' rating varchar(15) default NULL, ' +
' comment longtext default NULL, ' +
' seen char(1) default NULL, ' +
' multisession char(1) default NULL);';
Form1.MyCommand1.Execute;
finally
Form1.MyCommand1.Free;
end;我对最后一个分号不是百分之百肯定。如果仍然存在错误,请尝试如下:
' multisession char(1) default NULL)';https://stackoverflow.com/questions/66974979
复制相似问题