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

在DELPHI中如何将*.SQL的脚本(是存储过程的脚本)运行到数据库中?

楼主dana(dana)2002-04-22 17:15:06 在 Delphi / 数据库相关 提问

在DELPHI中如何将*.SQL的脚本(是存储过程的脚本)运行到数据库中?  
  问题点数:20、回复次数:29Top

1 楼icd(骆驼)回复于 2002-04-22 17:36:40 得分 10

 
  首先从文件读出*.sql的内容放在一个字符串里面,不过要把GO去掉  
  再用一个ADOCommand组件,设置ADOCommand的commandtext为刚才的字符串就可以拉Top

2 楼belllab(菜鸟)回复于 2002-04-22 17:50:06 得分 0

用SQLServer自带的isql.exe吧Top

3 楼outer2000(天外流星)回复于 2002-04-22 17:59:11 得分 0

用SQLServer自带的查询分析器,文件---打开---Top

4 楼dana(dana)回复于 2002-04-22 21:54:41 得分 0

不能用SQL自带的,我要在DELPHI程序中实现的。Top

5 楼badhorse(小虾)回复于 2002-04-23 11:42:45 得分 0

在SQL   server   上建个存储过程Exec_SQL(@strSQL   text)  
  在delphi中读入.sql文件的内容,作为参数传给存储过程。Top

6 楼badhorse(小虾)回复于 2002-04-23 11:57:53 得分 10

送佛送到西,存储过程的编写也很简单:  
  /*  
  功能:  
      执行@strSQL语句  
  */  
  CREATE   PROCEDURE   sp_ExecSQL(@strSQl   text)   AS  
      exec(@strSQL)  
  Top

7 楼dana(dana)回复于 2002-04-24 09:41:25 得分 0

可是这样运行后提示第一行有错误,这是为什么?Top

8 楼badhorse(小虾)回复于 2002-04-24 10:04:02 得分 0

错误信息是什么?Top

9 楼dana(dana)回复于 2002-04-24 10:04:17 得分 0

我写了这样的存储过程,  
  CREATE   PROCEDURE   sp_ExecSQL(@strSQl   text)   AS  
      exec(@strSQL)  
   
  然后用stroedproc调用  
    with   SP_exec   do  
    begin  
      close;  
      procedurename:='sp_ExecSQL;1';  
      Parameters.ParamByName('@strSQl').Value:=filename;  
      ExecProc;  
      close;  
    end;  
   
  可是这样运行后提示第一行有错误,这是为什么?  
  Top

10 楼badhorse(小虾)回复于 2002-04-24 10:10:45 得分 0

参数类型怎么没有设置?另外,filename是文件名?应该是从文件读出的字符串Top

11 楼badhorse(小虾)回复于 2002-04-24 10:11:55 得分 0

你指的错误是编译时的错误吗Top

12 楼hzwantfly(小兵王嘎)回复于 2002-04-24 10:14:26 得分 0

楼上的  
  参数刷新一下  
  sp_exec.Parameters.refresh;Top

13 楼badhorse(小虾)回复于 2002-04-24 10:49:53 得分 0

我还感到奇怪,怎么不利用脚本的内容直接建立存储过程呢?Top

14 楼badhorse(小虾)回复于 2002-04-24 10:56:51 得分 0

我还感到奇怪,为什么不利用脚本直接建立存储过程呢?Top

15 楼badhorse(小虾)回复于 2002-04-24 11:00:52 得分 0

把'sp_ExecSQL;1'换成'sp_ExecSQL'试试Top

16 楼dana(dana)回复于 2002-04-24 20:03:59 得分 0

一样的.  
  存储过程在建立是没有出错,可是在调用时的过程中出错。(提示存储过程第1行有误)  
  我所传入的filename,是文件的内容。  
       
   
  Top

17 楼hamzsy(十二真空间)回复于 2002-04-24 20:27:23 得分 0

AdoQuery1.SQL.LoadFromFileTop

18 楼dana(dana)回复于 2002-04-24 20:37:59 得分 0

用AdoQuery1.SQL.LoadFromFile  
  一样的结果,提示第1行有错误.Top

19 楼pzoon(杀死日本人)回复于 2002-04-24 20:52:49 得分 0

TStoredProcTop

20 楼dana(dana)回复于 2002-04-25 11:17:37 得分 0

用脚本直接建立存储过程  
  是怎么个建立法?Top

21 楼badhorse(小虾)回复于 2002-04-26 09:22:28 得分 0

就是手工把脚本内容拷下来,在企业管理器建立新的存储过程,再粘贴Top

22 楼badhorse(小虾)回复于 2002-04-26 09:29:00 得分 0

先把问题定位:先传一个简单的sQL语句给存储过程。如果没有问题则要看看  
  读取的脚本内容是否有问题。Top

23 楼badhorse(小虾)回复于 2002-04-26 09:47:07 得分 0

我在查询分析器里这样实验了一下,是可以的:  
  exec   sp_execsql   'begin   transaction  
                                        select   count(*)   from   tbl_awards  
                                        truncate   table   tbl_awards  
                                        select   count(*)   from   tbl_awards  
                                    rollback'  
  Top

24 楼dana(dana)回复于 2002-04-26 09:53:01 得分 0

导入的SQL语句是没错可以在SQL脚本分析器中运行的且这个是从SQL中导出的脚本。  
  在存储过程中不能直接写的,因为这个是SQL脚本是会动态改变的。Top

25 楼badhorse(小虾)回复于 2002-04-26 09:59:19 得分 0

把脚本的一个示例发来看看Top

26 楼badhorse(小虾)回复于 2002-04-26 10:15:21 得分 0

你调试的时候观察到的脚本内容正确吗Top

27 楼badhorse(小虾)回复于 2002-04-26 10:18:04 得分 0

最好把完整的错误信息也发来看看Top

28 楼dana(dana)回复于 2002-04-27 10:55:13 得分 0

badhorse(小虾)   :你有没有邮箱或QQ,我发过去你看看。Top

29 楼catthunder(男儿何不带吴钩)回复于 2002-04-27 16:02:04 得分 0

存储过程是要经过数据库编译的,如果没编译过,怎么能被数据库执行了?  
  Top

30 楼badhorse(小虾)回复于 2002-04-28 15:02:16 得分 0

我的邮箱:mmyybb@sohu.comTop

31 楼man8888(北京男人)回复于 2002-06-21 09:59:39 得分 0

我做了个控件:  
  www.ifrance.com/man8888/main.php  
  找下载中心,我的控件/TGo.Top

相关问题

  • 在Delphi中,用SQL脚本更新存储过程?
  • 如何在delphi里将存储过程脚本(*.sql)提交到数据库里
  • 如何在Delphi中执行Sql server的脚本文件(*.sql)建立表及存储过程?100分
  • 高分请教:如何在delphi里将存储过程脚本(*.sql)提交到数据库里???
  • SQL语句让存储过程生成SQL脚本!
  • 存储过程如何执行SQL脚本?
  • 如保通过程序把SQL存储过程导出,生成SQL脚本
  • 请问怎么能够导出数据库SQL脚本的时候导出存储过程的SQL脚本
  • DELPHI中关于调用SQL SERVER存储过程???(高分相送)
  • 请问DELPHI,SQL Server 中如何使用存储过程?

关键词

  • 脚本
  • 存储过程
  • delphi
  • 数据库
  • 分析器
  • 语句
  • 文件
  • sql
  • 内容
  • execsql

得分解答快速导航

  • 帖主:dana
  • icd
  • badhorse

相关链接

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

广告也精彩

反馈

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