参数传递

businiess 2003-11-26 07:45:13
这是在QUERY1内写的导入TXT到SQL的语句,我要把TXT的文件名为变量,这样
传又不行。

delete from dat
declare @tn char(12)
select @tn=:fn
exec master..xp_cmdshell'bcp kqdata..dat in c:\@tn.txt -c -t'


在程序内用
query1.Parameters[0].Value:=edit1.Text;
...全文
24 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjcxc 元老 2003-11-27
  • 打赏
  • 举报
回复
delete from dat
declare @tn varchar(12)
declare @sql varchar(8000)
select @tn='fn'
set @sql='bcp kqdata..dat in c:\'+@tn+'.txt /c /t'
print @sql --看看这句的结果和你直接写的有什么区别,是什么内容?
exec master..xp_cmdshell @sql
businiess 2003-11-27
  • 打赏
  • 举报
回复
是@tn这个参数没起到作用,还是没反应,把TXT文件名写出来是可以的,用变量就
不行了。
pengdali 2003-11-27
  • 打赏
  • 举报
回复
格式:


EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect in c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
//导入

EXEC master..xp_cmdshell 'bcp test.dbo.P_Aspect out c:\temp1.txt -c -q -S"servername" -U"sa" -P""'
//导出
zjcxc 元老 2003-11-27
  • 打赏
  • 举报
回复
--你没有给出登陆名和密码.改用下面的
delete from dat
declare @tn varchar(12)
declare @sql varchar(8000)
select @tn='fn'
set @sql='bcp kqdata..dat in c:\'+@tn+'.txt /c /t /S"服务器名" /U"用户名" /P"密码"'
exec master..xp_cmdshell @sql
businiess 2003-11-27
  • 打赏
  • 举报
回复
搞好了,谢谢二位
businiess 2003-11-27
  • 打赏
  • 举报
回复
delete from dat
declare @tn varchar(12)
declare @sql varchar(8000)
select @tn='fn'
set @sql='bcp kqdata..dat in c:\'+@tn+'.txt /c /t'
print @sql --看看这句的结果和你直接写的有什么区别,是什么内容?
exec master..xp_cmdshell @sql
结果

bcp kqdata..dat in c:\fn.txt /c /t

所以把上面的select @tn='fn'改成select @tn='直接的文件名'就可以导入,变量就没作用了
businiess 2003-11-26
  • 打赏
  • 举报
回复

TO ZJCXC:是这样的

Password:
SQLState = S1000, NativeError = 0
Error = [Microsoft][ODBC SQL Server Driver]Unable to open BCP host data-file
zjcxc 元老 2003-11-26
  • 打赏
  • 举报
回复
--查询分析器中执行下面的输出结果是什么?:

delete from dat
declare @tn varchar(12)
declare @sql varchar(8000)
select @tn='fn'
set @sql='bcp kqdata..dat in c:\'+@tn+'.txt -c -t'
exec master..xp_cmdshell @sql
businiess 2003-11-26
  • 打赏
  • 举报
回复
TO 大力

query1.sql.add('exec master..xp_cmdshell''bcp kqdata..dat in c:\'+edit1.Text+'.txt -c -t''');

这样会有这样错误
LINE 8 :Incorrect syntax near'+''
pengdali 2003-11-26
  • 打赏
  • 举报
回复
query1.sql.add('exec master..xp_cmdshell''bcp kqdata..dat in c:\'+edit1.Text+'.txt -c -t''');
pengdali 2003-11-26
  • 打赏
  • 举报
回复
delete from dat
declare @tn char(12)
select @tn=:fn
exec master..xp_cmdshell'bcp kqdata..dat in c:\@tn.txt -c -t'


在程序内用
query1.sql.add('exec master..xp_cmdshell''bcp kqdata..dat in c:\'+edit1.Text+'.txt -c -t''');
zjcxc 元老 2003-11-26
  • 打赏
  • 举报
回复
delete from dat
declare @tn varchar(12)
declare @sql varchar(8000)
select @tn='fn'
set @sql='bcp kqdata..dat in c:\'+@tn+'.txt -c -t'
exec master..xp_cmdshell @sql

34,874

社区成员

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

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