首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DelphiXE7和MyDac在运行时创建XE7表的问题

使用DelphiXE7和MyDac在运行时创建XE7表的问题
EN

Stack Overflow用户
提问于 2021-04-06 19:06:18
回答 1查看 129关注 0票数 1

我帮了一个朋友的忙,他的普通程序员病了,他给了我一份临时工作。

我正在使用RAD XE7 Delphi和MyDac为他创建一个数据库。我退休了,已经有一段时间没有使用德尔福了,那就是XE3。我可以创建数据库没有问题,但我有一个问题的表。它告诉我,在执行之前,在最后一行中有一个语法错误。我无法显示他想要的实际字段,但我几年前创建了一个表,也为我的妻子创建了一个非常老版本的MyDac。我试着用我的旧代码,得到了同样的结果。

以下是代码:

代码语言:javascript
复制
   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岁的时候,灰色细胞已经不是以前的样子了!

有人能帮我一下吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-07 06:58:11

这应该是可行的:

代码语言:javascript
复制
   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;

我对最后一个分号不是百分之百肯定。如果仍然存在错误,请尝试如下:

代码语言:javascript
复制
                               ' multisession char(1) default NULL)';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66974979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档