sqlstr="use MyDB" & vbcrlf & "go" & vbcrlf & "select * from MyTable" & vbcrlf & "go"
cn.execute sqlstr
cn.execute sqlstr
解决方案 »
- 判断季度的最末一天
- 为什么这样锁定行不行了?
- 百思不得其解.........路过的进来看看
- 存储过程中,order by的一个小问题,急,谢谢了
- 根据A表的条件COUNT(a),根据B表的条件COUNT(b),且两个条件无交集,如何写?
- 写存储过程语法错误 错误7405
- sql server 2008中,如何查询出某数据库的索引文件的大小
- [在线],如何配置链接服务器,访问DB2?如何用addlinkedserver,请说明每一个参数?谢谢
- 特急问题,同一服务器中能否同时安装SQL 7.0 和SQL 2000,且都能同时正常运行,搞定即给分?
- SELECT * FROM KJKMB WHERE KMMC=' 杨勇-恒台' 结果不符!是不是有BUG啊?我快急疯了...请帮忙!
- 求一条绝妙的Select语句,急!!!请高手执教!!!急!!!
- Access与SQL Server有那些不兼容的地方??
我希望将数据库的Sql文件使用一个类似安装程序的东西来在ADO中执行,而不再需要打开查询分析器了。sql文件是数据库的所有的创建对象的内容。
我做了,还是不行,比如我给的串为:
CString strSQL="Use master \r\n\go \r\n\create database abcd \r\n\go ";
运行还是不行!出现的错误警告是:IDispatch error #3092。
但是使用下面的语句又可以:
1:将strSQL分成:Use master-》执行execute
再将strSQL赋值:CREATE database abcd 又可以了。
2:将strSQL赋值:strSQL="declare @a int \r\n select @a=count(*) from sysfiles";
也可以执行,不会错误。to:aierong(皑婀瑢-数据库XML.NET联盟会局长)
请问是不是在command中这样使用:在一个显示的事务中,使用command命令,多次执行后统一提交?
麻烦各位再给一点意见吧!!!!!谢谢了!!!!!!
刚才试验了你所说的,
对于语句:strSQL="Use master \r\ngo \r\n\create database abcd \r\n\go ";
去掉go,成为strSQL="Use master \r\ncreate database abcd ";执行成功,但是,如果我希望的是:
Use master
go
create database abcd
go
use abcd
go
create table dd(
col1 int,
col2 char(5)
)
go
于是我就写:strSQL="Use master \r\ncreate database abcd \r\n use abcd \r\n create table dd(\r\n col1 int,\r\n col2 char(5)\r\n)";
结果就发生执行错误,然后我把语句改成两句:
strSQL="Use master \r\ncreate database abcd ";
strSQL2="use abcd \r\n create table dd(\r\n col1 int,\r\n col2 char(5)\r\n)";
分别执行就成功了,请问这是为什么呢?
strSQL="Use master \r\ncreate database abcd \
\r\nuse abcd \r\ncreate table dd( col1 int, col2 char(9) )\
\r\ncreate proc fir \r\nas\r\nbegin raiserror('abc',16,1) end\
\r\ncreate trigger infir on dd for insert \r\nas\
\r\nbegin if (select col1 from inserted)<10 \
\r\nraiserror('ddd',16,1) end";
TRACE(strSQL);得到:
Use master
create database abcd
use abcd
create table dd( col1 int, col2 char(9) )
create proc fir
as
begin raiserror('abc',16,1) end
create trigger infir on dd for insert
as
begin if (select col1 from inserted)<10
raiserror('ddd',16,1) end如果在查询分析器中加入go即为:
Use master
go
create database abcd
go
use abcd
go
create table dd( col1 int, col2 char(9) )
go
create proc fir
as
begin raiserror('abc',16,1) end
go
create trigger infir on dd for insert
as
begin if (select col1 from inserted)<10
raiserror('ddd',16,1) end
go
在查询分析器中可以成功执行,但是在connection对象的execute中返回“未指定错误”!!
在生成的一个数据库安装程序的sql文件中,肯定有很多Create开头的批处理,那是不是就必须要将这个文件的每个批处理在程序中分离开,各自单独执行呢?
不管是用SQL語句還是存儲過程,別忘了加上:
SET NOCOUNT ON
SET ANSI_WARNINGS OFF
否則,處理SQL返回信息會挺麻煩