create table #table(id int identity,txt varchar(1000))
insert into #table(txt) exec master..xp_cmdshell 'dir c:\*.'
select * from #table
insert into #table(txt) exec master..xp_cmdshell 'dir c:\*.'
select * from #table
执行成功,返回sqlcode值为0。
不过我估计你要得到c:目录的内容:create table #T(content varchar(1000))
insert into #T exec master..xp_cmdshell 'dir c:\'
select * from #t
keyword:
xp_cmdshell
create table #T(content varchar(1000))
insert into #T exec master..xp_cmdshell 'dir c:\'
select * from #t时,总是中间那步出问题,不知道是怎么回事,谢谢。
SET @var = 'dir /p'
SET @cmd = 'echo ' + @var + ' > dir_out.txt'
EXEC master..xp_cmdshell @cmd
create table #T(content varchar(1000))
insert into #T exec master..xp_cmdshell 'dir c:\'
select * from #t
然后建以这个存储过程为数据源的数据窗口,在数据窗口中就可以得到服务器C:根目录下的东西。数据窗口取值就简单了吧?
insert into aaa exec master..xp_cmdshell 'dir c:\';
SQLCA.AutoCommit = True
insert into aaa(bbb) EXECUTE master..xp_cmdshell 'dir c:\';
connect using sqlca;
messagebox("",sqlca.sqlcode)测试发现,insert into可以实现,可是插入的是空行。
才可以调用。1、先在 SQL SERVER 中建一存储过程
CREATE PROC TEST
AS
insert into aaa(bbb) EXECUTE master..xp_cmdshell 'dir c:\'2、在PB中定义
DECLARE TEST PROCEDURE FOR TEST
USING sqlca ;
execute TEST;messagebox("",sqlca.sqlcode)
as
begin
create table #table(id int identity,txt varchar(1000))
insert into #table(txt) exec master..xp_cmdshell 'dir c:\*.'
select * from #table
end
go
proc_dir调用存储过程
proc_dir