在ado中为啥不能一次性执行两条sql语句

hsn1982 2007-11-14 05:38:45
var
adoCmd: _Command;
vRecordCount: OleVariant;
iReturnValue: Integer;
adoRst: _Recordset;


adoCmd._Set_ActiveConnection(DbConnection);
adoCmd.CommandText:='use master; Select name From sysdatabases';
adoCmd.CommandType :=adCmdText
adoRst:= adoCmd.Execute(vRecordCount,EmptyParam,adCmdText);
这样为啥返回的adoRst是不可用的?
为啥在mssql中的查汛工具中可以执行use master; Select name From sysdatabases?
...全文
186 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hsn1982 2007-11-16
  • 打赏
  • 举报
回复
多谢fcuandy。终于帮我解决了困扰一周的问题了。
kelph 2007-11-16
  • 打赏
  • 举报
回复
复杂的查询,用存储过程吧
you_tube 2007-11-16
  • 打赏
  • 举报
回复
adoCmd._Set_ActiveConnection(DbConnection);
adoCmd.CommandText:= 'use master; Select name From sysdatabases ';
adoCmd.CommandType :=adCmdText


使用adoCmd.commandtype的类型不对,adCmdText只能是查询语句
如一定要执行可以改为存储过程。
ysai 2007-11-15
  • 打赏
  • 举报
回复
use master
是指定数据库
而ADO的数据是ADOConnection指定的,ADOCommand不能更改,它只能使用ADOConnection连接的数据库
先关闭ADOConnection,重新设定连接字符串,再Open,然后用ADOCommand执行SQL
或者,用多个ADOConnection分别连不同的数据库
leeyeefeng2004 2007-11-15
  • 打赏
  • 举报
回复
'use master; Select name From sysdatabases
-------------------------------
'use master; GO; Select name From sysdatabases
internetroot 2007-11-14
  • 打赏
  • 举报
回复
TADOCommand is most often used for executing data definition language (DDL) SQL commands or to execute a stored procedure that does not return a result set. For SQL statements that return a result set, TADODataSet, TADOQuery, or TADOStoredProc is better suited. The Execute method of TADOCommand is, however, capable of returning a recordset. To use that recordset, however, you will need a separate ADO dataset component.
fcuandy 2007-11-14
  • 打赏
  • 举报
回复
可以执行多条语句.
试试用 recordset.nextrecord方法
jwt1982 2007-11-14
  • 打赏
  • 举报
回复
可以使用事务模式比如

ado.conn.begintrance

adocmd.text:='use master';
adocmd.execsql;
adocmd.text:='Select name From sysdatabases'
adocmd.execsql;
ado.conn.commintrance;
开发思路: 使用ADO通过ODBC链接进行Louts数据读取,在建立一个与SQL server数据库相连的ADO,将读取数据写入SQL server数据库。 安装环境: 首先安装lotus_notes853_win_SC(lotus客户端软件) 然后安装LOTUS_NOTES_SQL_853_W32_CIC6PEN(顺序好像有关系,win8.1安装64位不能正常使用,一定要安装32位的) 数据库连接: 先通过lotus客户端软件连接登陆成功,需要admin.id文件 通过ODBC 数据源(32 位) 添加 Lotus Notes SQL Driver(*.nsf)数据源,选择自己的loust数据库文件.nsf delphi ADO控件通过ODBC Drivers直接连接,本程序用例名设置为LotusOA,每次连接需要输入lotus密码,其他开发这里就不在介绍可以看源代码 delphi ADO控件连接自己本地的SQL Server数据库,程序下载后自己修改 软件使用: 1、配置:通过config.ini修改LOTUSCONN,即LotusOA设置为自己的建立ODBC的名字,关系数据库修改DBCONN,本例为SQLServer数据库 2、启动程序,点“数据源链接”,程序连接到lotus数据库和Sql server数据库 设置原始表名:通过lotus设计程序的试图可以看到,大部分是fm_Main,设置创建表名用于数据导出的表 3、获取表字段,会读处lotus数据的所有表名,自动目标生成表创建的sql语句,默认字段长度都是254,如需要可以自己修改 4、点“创建表”按钮,如果已创建了不要再点这个按钮 5、点“导出数据”,程序开始自动导出数据 如果目标数据库是其他类型数据库,可自己通过配置文件config.ini的DBCONN进行修改 lotus导入关系数据库的资源一直很难找,自己的一点拙见,希望对大家有用。

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧