delphi SQL语句的几个小问题

时间:2022-06-01 18:29:43
1.delphi有没有像PB的直接生成SQL语句的东东?
2.query1.SQL.add('('+Edit1.text+','''+Edit2.text+''','''+Edit3.text+''','''+Edit4.text+''','''+Edit5.text+''','''+Edit6.text+''','''+hetonglvxing+''')');

里的+是什么意思?

那些引号是怎么分配的?

3.怎么判断插入(insert)语句是否成功?

4.delphi的SQL语句能否象PB似的竖着写? 看起来好晕那!

17 个解决方案

#1


1﹑沒有。
2﹑兩個"+"號中間表示字符串變量。
3﹑當用query.execsql時﹐如果錯誤就是不成功。
4﹑你想怎么寫都行。

#2


1.鼠标右键点TQuery控件,菜单里面有 SQL Builder...
2. + 还是字符串的连接符号 'abcd' + '1234' = 'abcd1234'
3.插入不成功bde会跑出一个BDE异常的;
4.什么叫做竖着写?

#3


可以坚着写的。用换行符。

#4


一楼的大哥,说没有我觉得有点纳闷,还好耙子哥说了,感觉上还是DELPHI中的SQL语句更直观,因为刚开始学太多的SQL原因吧

3.怎么判断插入(insert)语句是否成功?
好像一般不这样用吧,只是用异常保护就可以

4.delphi的SQL语句能否象PB似的竖着写? 看起来好晕那!
应该是可以的,只要不出现错误也行吧,我没试过,

#5


1。不知你要的是不是脚本,可从库中生成
2字符串连接''表示一个'号
3try
 except
 end;
4?

#6


劝楼主还是手工写吧,生成的sql语句巨长,修改起来也麻烦

#7


1﹑有。UpdateSql控件可以实现一部分功能。
2﹑兩個"+"號中間表示字符串。
3﹑用query.execsql時﹐如果錯誤就是不成功。
4﹑你可以写成任意格式。
5、''''两个单引号之间的 两个单引号表示转化到字符串中是一个单引号。即:'b''a'字符串"b'a"

#8


1.鼠标右键点TQuery控件,菜单里面有 SQL Builder...
里面怎么生成insert语句?

#9


query1.SQL.Clear ;
  query1.SQL.add('insert into xinyuluru1(合同ID,合同名称,对方公司名称,法人代表,项目,完成日期,合同履行情况) ');
  query1.SQL.add('values');
 query1.SQL.add('('+Edit1.text+','''+Edit2.text+''','''+Edit3.text+''','''+Edit4.text+''','''+Edit5.text+''','''+Edit6.text+''','''+hetonglvxing+''')');
Query1.Active:=true;
//
query1.SQL.add有错,我找不出来

#10


我给你分开看看 你就知道是什么意思了

'+Edit1.text+',''//到次为一小句,其中逗号是个字符,','

'+Edit2.text+''',''//到次为一句,其中逗号是个字符串!“,”

'+Edit3.text+''',''//这儿又是一句,最前面的是这样的'+edit3.text+'
应该看懂了吧?

#11


+号一是连接字符串,二是包含字符串。

#12


谢谢 wenyu2000(文雨)
还有鼠标右键点TQuery控件,菜单里面有 SQL Builder...
里面怎么生成insert语句?
搞完揭贴

#13


楼主,都告诉你了sql builder 的地方,你就不能自己琢磨一下怎么用?
他的方法很简单呀。

生成 insert 他有点力不从心。

#14


琢磨完了,发现sql builder 只能生成Select语句,什么insert,delete,根本没有嘛

#15


你用什么数据库的呢,用ACCESS就有呀,SQL也有呀,

#16


theADOCommand := TADOCommand.Create(self);
    try
      theADOCommand.Connection :=  Connection;
      with theADOCommand do
      begin
        StrSQL := ' UPDATE T_SUBMIT SET '
                + ' OrderAcceptID = '+QuotedStr(FileNo)+','
                + ' OrderID = '+QuotedStr(BookingNo)+','
                + ' AcceptPerson = '+QuotedStr(Man)+','
                + ' AcceptDate = GETDATE() '
                + ' WHERE SubmitID = '+IntToStr(SubmitID)+'';
        CommandText := StrSQL ;
        Execute;
        result:=True;
      end;
    finally
      FreeAndNil(theADOCommand);
    end;

#17


人好多多,我也来凑热闹
楼主的sql没有问题,不过确定hetonglvxing是字符性的

#1


1﹑沒有。
2﹑兩個"+"號中間表示字符串變量。
3﹑當用query.execsql時﹐如果錯誤就是不成功。
4﹑你想怎么寫都行。

#2


1.鼠标右键点TQuery控件,菜单里面有 SQL Builder...
2. + 还是字符串的连接符号 'abcd' + '1234' = 'abcd1234'
3.插入不成功bde会跑出一个BDE异常的;
4.什么叫做竖着写?

#3


可以坚着写的。用换行符。

#4


一楼的大哥,说没有我觉得有点纳闷,还好耙子哥说了,感觉上还是DELPHI中的SQL语句更直观,因为刚开始学太多的SQL原因吧

3.怎么判断插入(insert)语句是否成功?
好像一般不这样用吧,只是用异常保护就可以

4.delphi的SQL语句能否象PB似的竖着写? 看起来好晕那!
应该是可以的,只要不出现错误也行吧,我没试过,

#5


1。不知你要的是不是脚本,可从库中生成
2字符串连接''表示一个'号
3try
 except
 end;
4?

#6


劝楼主还是手工写吧,生成的sql语句巨长,修改起来也麻烦

#7


1﹑有。UpdateSql控件可以实现一部分功能。
2﹑兩個"+"號中間表示字符串。
3﹑用query.execsql時﹐如果錯誤就是不成功。
4﹑你可以写成任意格式。
5、''''两个单引号之间的 两个单引号表示转化到字符串中是一个单引号。即:'b''a'字符串"b'a"

#8


1.鼠标右键点TQuery控件,菜单里面有 SQL Builder...
里面怎么生成insert语句?

#9


query1.SQL.Clear ;
  query1.SQL.add('insert into xinyuluru1(合同ID,合同名称,对方公司名称,法人代表,项目,完成日期,合同履行情况) ');
  query1.SQL.add('values');
 query1.SQL.add('('+Edit1.text+','''+Edit2.text+''','''+Edit3.text+''','''+Edit4.text+''','''+Edit5.text+''','''+Edit6.text+''','''+hetonglvxing+''')');
Query1.Active:=true;
//
query1.SQL.add有错,我找不出来

#10


我给你分开看看 你就知道是什么意思了

'+Edit1.text+',''//到次为一小句,其中逗号是个字符,','

'+Edit2.text+''',''//到次为一句,其中逗号是个字符串!“,”

'+Edit3.text+''',''//这儿又是一句,最前面的是这样的'+edit3.text+'
应该看懂了吧?

#11


+号一是连接字符串,二是包含字符串。

#12


谢谢 wenyu2000(文雨)
还有鼠标右键点TQuery控件,菜单里面有 SQL Builder...
里面怎么生成insert语句?
搞完揭贴

#13


楼主,都告诉你了sql builder 的地方,你就不能自己琢磨一下怎么用?
他的方法很简单呀。

生成 insert 他有点力不从心。

#14


琢磨完了,发现sql builder 只能生成Select语句,什么insert,delete,根本没有嘛

#15


你用什么数据库的呢,用ACCESS就有呀,SQL也有呀,

#16


theADOCommand := TADOCommand.Create(self);
    try
      theADOCommand.Connection :=  Connection;
      with theADOCommand do
      begin
        StrSQL := ' UPDATE T_SUBMIT SET '
                + ' OrderAcceptID = '+QuotedStr(FileNo)+','
                + ' OrderID = '+QuotedStr(BookingNo)+','
                + ' AcceptPerson = '+QuotedStr(Man)+','
                + ' AcceptDate = GETDATE() '
                + ' WHERE SubmitID = '+IntToStr(SubmitID)+'';
        CommandText := StrSQL ;
        Execute;
        result:=True;
      end;
    finally
      FreeAndNil(theADOCommand);
    end;

#17


人好多多,我也来凑热闹
楼主的sql没有问题,不过确定hetonglvxing是字符性的