VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 995|回复: 8

怎样动态创建表的名字?

[复制链接]

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-3-21 08:00:02 | 显示全部楼层 |阅读模式
这样有错误,要怎么解决呢?谢谢
procedure TForm3.Button2Click(Sender: TObject);
var
  tablename:string;
begin
    tablename:=formatdatetime('yyyymd',strtodatetime(daystr));
    with ADOquery2 do
    begin
       close;
       sql.Clear;
       sql.Add('select 书号,销售数量,销售单价 into '+tablename+'      from bookout');
       sql.Add('where 销售日期='+quotedstr(daystr));
回复

使用道具 举报

0

主题

13

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-7-6 13:45:01 | 显示全部楼层
sql.Add('exec(select 书号,销售数量,销售单价 into '+tablename+' from bookout');
sql.Add('where 销售日期='''+quotedstr(daystr))+''')';


你的日期,我帮你加了引号,应该是需要的。
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-8-11 16:45:01 | 显示全部楼层
sql.Add('select 书号,销售数量,销售单价 into '+quotedstr(tablename)+' from bookout');
sql.Add('where 销售日期='+quotedstr(daystr));

这样才是对的
回复

使用道具 举报

0

主题

14

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-8-11 18:45:01 | 显示全部楼层
楼上的你写的就对啊!
人家那是tablename 你加引号做什么?


楼主的sql写的我没有看出什么问题,你试试在where前边加一个空格看看,我用adodataset不用adoquery


sql.Add('select 书号,销售数量,销售单价 into '+tablename+' from bookout');
sql.Add(' where 销售日期='+quotedstr(daystr));
回复

使用道具 举报

0

主题

14

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-8-11 19:00:01 | 显示全部楼层
不是我说的问题,把你的错误提示发出来看看吧
回复

使用道具 举报

0

主题

14

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-8-11 19:15:03 | 显示全部楼层
你的daystr是那里来的?全局变量?
回复

使用道具 举报

2

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-8-13 19:00:01 | 显示全部楼层
当用英文字母用表名的时候就不会错,当用日期时就不对了,是什么错误呢?
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-8-14 11:30:01 | 显示全部楼层
ShowMessage看看实际产生的语句,看有没有错误。这么简单的问题
回复

使用道具 举报

0

主题

12

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-8-14 13:00:01 | 显示全部楼层
在where前加个空格试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表