CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

实在忍不住了,问个问题,delphi里写SQL语句一定要通过SQL.ADD('');添加吗??有没有一次把大量SQL语句导入程序的?

楼主jl820712(散乱心绪)2005-03-02 21:42:56 在 Delphi / 数据库相关 提问

SQL语句多了,用SQL.ADD();实在是麻烦,还要逐个修改引号,有没有什么方法简便一点的?? 问题点数:0、回复次数:15Top

1 楼jl820712(散乱心绪)回复于 2005-03-02 21:44:32 得分 0

语句仍然要写在程序里,不能外部调用文件导入,我用的是ADOQueryTop

2 楼Bruce_N(深蓝)回复于 2005-03-02 21:47:48 得分 0

我也觉得麻烦,要有种方法一次性写进去就好了  
  Top

3 楼abcdefgdeng(dqx)回复于 2005-03-02 21:58:40 得分 0

如果有现成的Text在     ListBox1或在  
      Memo1中可以用这种方法啊:SQL.assign(ListBox1.Items)或SQL.assign(Memo1.Lines)Top

4 楼abcdefgdeng(dqx)回复于 2005-03-02 22:01:01 得分 0

也可以读取外面的.Txt,或.ini文件,然后把内容付给ADOQuery.sql.text  
  Top

5 楼ttjacky(豆豆糖)回复于 2005-03-02 22:03:45 得分 0

楼上正解Top

6 楼jl820712(散乱心绪)回复于 2005-03-02 22:07:50 得分 0

我觉得麻烦的地方是那些引号啊,如果SQL语句里用到了引号的话(select   *   from   table1   where   name='abc'),添加到程序里就要变成SQL.ADD('select   *   from   table1   where   name='+'''abc''')  
   
  用Memo也一样啊,都要加上引号Top

7 楼jl820712(散乱心绪)回复于 2005-03-02 22:09:05 得分 0

最好不要用到调用外部文件,除了调用外部文件之外还有没有其他方法Top

8 楼linbren(lin)回复于 2005-03-02 23:21:24 得分 0

语句长了用过程函数。这才是正解。Top

9 楼jl820712(散乱心绪)回复于 2005-03-02 23:28:48 得分 0

过程函数??  
  你指的是存储过程吗?  
   
  还是就delphi里的普通过程Top

10 楼big_welley(你快乐,所以我快乐)回复于 2005-03-02 23:36:34 得分 0

就是写个函数吧。  
  碰到超长的语句,我都是写个函数解决。Top

11 楼kuki84(天道酬勤)回复于 2005-03-02 23:53:43 得分 0

str[1]:='select   *   from   pig   where   name=布什'  
  str[2]:='select   *   from   sexpig   where   name=克林顿'  
  str[3]:='delete   pig   where   name=小泉纯一郎'  
  str[4]:='insert   into   SuperFoolishPig(name,sex)   values(小泉纯一郎,n/a)'  
   
  for   i:=1   to   4   do  
    begin  
    adoquery1.close;  
    adoquery1.sql.clear;  
    adoquery1.sql.add(str[i]);  
    try  
      adoquery1.open  
    except  
      adoquery1.execsql  
    end;  
    end;Top

12 楼kuki84(天道酬勤)回复于 2005-03-02 23:58:05 得分 0

对有参数的sql,就麻烦了,用三维不定长数组,  
  如str[1][1]   sql   语句  
      str[1][2][1]   参数名一   str[1][2][2]   参数名二  
      _HWND[1][3][1]   参数一所在控件句槟一   str[1][3][2]   参数一所在控件句槟一  
        ^   <-忘了怎么拼了。Top

13 楼luxuinstan(小强)回复于 2005-03-03 00:17:10 得分 0

只有add('')语句了,你可以分开多行写嘛。  
  adosql1.sql.add('aaaaaaaaaaaaaaaaaaaaaaa');  
  adosql1.sql.add('bbbbbbbbbbbbbbbbbbbbbbb');  
  ........................  
   
  try  
      adosql1.sql.open;  
  except  
      showmessage('xx');  
  end;      
  Top

14 楼iamdream(梦无止境)回复于 2005-03-03 08:25:57 得分 0

要处理引号,可用QuotedStr函数;  
  如:  
  ADOQuery1.SQL.Text   :=   QuotedStr(你的串);Top

15 楼jl820712(散乱心绪)回复于 2005-03-03 10:13:31 得分 0

to   回复人:   kuki84()   (   )   信誉:57    
  汗。。。你这样添加进去可以行吗?引号不对的吧,添加后SQL内执行语句是name=布什而不是name='布什'。  
  str[1]:='select   *   from   pig   where   name=布什'  
  str[2]:='select   *   from   sexpig   where   name=克林顿'  
  str[3]:='delete   pig   where   name=小泉纯一郎'  
  str[4]:='insert   into   SuperFoolishPig(name,sex)   values(小泉纯一郎,n/a)'  
   
  for   i:=1   to   4   do  
    begin  
    adoquery1.close;  
    adoquery1.sql.clear;  
    adoquery1.sql.add(str[i]);  
    try  
      adoquery1.open  
    except  
      adoquery1.execsql  
    end;  
    end;  
   
  to   回复人:   luxuinstan(小强)   (   )   信誉:86    
  汗,,要是你那样,我也不会来提问了。要是有上百条让你ADD,你还会这样去1条1条添吗?  
   
   
  to     回复人:   iamdream(梦无止境)   (   )   信誉:100    
  你说的我也知道,只是。。。。怎么说呢,还是嫌有点麻烦Top

相关问题

  • 导入导出sql语句
  • Excel导入SQL,语句碰到问题
  • 从SQL导入到EXECL的语句
  • 数据导入导出的sql语句
  • delphi中的sql语句。
  • delphi中的sql语句
  • 怎样用SQL语句导出导入数据<MS SQL Sever7.0>
  • 转载:(MS SQL Server)SQL语句导入导出大全
  • 用sql语句把excel导入sql-server问题(急急急)
  • 求教将.txt导入sql server的sql语句,急

关键词

  • 语句
  • 函数
  • 文件
  • sql
  • adoquery
  • 引号
  • 参数
  • 程序
  • 调用
  • memo

得分解答快速导航

  • 帖主:jl820712

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo