首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

哪位高人精通SQL Server的DTS调用啊解决思路

2012-02-24 
哪位高人精通SQL Server的DTS调用啊想用DELPHI调用SQLServer的DTS包,通过创建com对象,调用动作是成功了,但

哪位高人精通SQL Server的DTS调用啊
想用DELPHI调用SQL   Server的DTS包,通过创建com对象,调用动作是成功了,但是导数据过程的进度条无法搞定,看了VB的示例代码,还是没搞定。
哪位高人精通DELPHI调用SQL   Server的DTS包,能否指点一二?抑或给我个有进度条的调用SQL   Server的DTS包的例子,wbamboo@sina.com,谢谢!


[解决办法]
vb代码呢?
[解决办法]
vb代码呢?

这么多牛人, 把VB代码翻译成Delphi不成问题
[解决办法]
发错了,重新发:
try
OpenDialog:=TOpenDialog.Create(Self);
OpenDialog.DefaultExt := 'xls ';
OpenDialog.Filter := 'Microsoft Excel 文件 (*.xls)|*.xls ';
OpenDialog.Execute;
if OpenDialog.FileName <> ' ' then
try
Screen.Cursor:=crSqlWait;
ADOConCollExcel.Close;
ADOConCollExcel.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= '
+OpenDialog.FileName+ ';Extended Properties=Excel 8.0;Persist Security Info=False ';
ADOConCollExcel.Open;
with ADOQryCollExcel do
begin
Close;
Sql.Clear;
Sql.Add( 'SELECT * FROM [Sheet1$] ');
Prepared:=true;
Open;
end;
if Copy(ADOQryCollExcel.FieldByName( '地区编码 ').AsString,1,4) <> mUser.UserArea then
begin
ShowWIE(1, '不能导入其它地区数据! ');
ADOQryCollExcel.Close;
ADOConCollExcel.Close;
exit;
end;
iCount:=ADOQryCollExcel.RecordCount;
ADOConCollExcel.BeginTrans;
ADOQryCollExcel.First;
while not ADOQryCollExcel.Eof do
begin
with F_DataModule.ADOCom do
begin
CommandText:= ' EXEC proc_CoOvInsertExcelData '+ ' ' ' '+mUser.UserArea+ ' ' ' '+ ', '+ ' ' ' '+Trim(ADOQryCollExcel.FieldByName( '地区编码 ').AsString)+ ' ' ' ';
CommandText:=CommandText+ ', '+ ' ' ' '+FormatDateTime( 'yyyymmdd ',(ADOQryCollExcel.FieldByName( '发布日期 ').AsDateTime))+ ' ' ' '+ ', '+ ' ' ' '+Trim(ADOQryCollExcel.FieldByName( '材料编码 ').AsString)+ ' ' ' ';
CommandText:=CommandText+ ', '+Trim(ADOQryCollExcel.FieldByName( '材料单价 ').AsString);
Execute;
end;
ADOQryCollExcel.Next;
F_Main.StatusBar.Refresh;
F_Main.StatusBar.Panels[2].text:= '当前数: '+IntToStr(ADOQryCollExcel.RecNo)+ '(共 '+IntToStr(iCount)+ '条) ';
end;
ADOConCollExcel.CommitTrans;
ShowWIE(2, '导入成功! ');
except
ADOConCollExcel.RollbackTrans;
ShowWIE(2, '导入失败! ');
end;
finally
ADOQryCollExcel.Close;
ADOConCollExcel.Close;
OpenDialog.Free;
Screen.Cursor:=crDefault;
F_Main.StatusBar.Panels[2].Text:= ' ';
end;
//用openrowset的
if ShowIYN( '是否真的要导入Excel数据? ') <> IDCANCEL then
try
ADOConInfoExcel.Open;
OpenDialog:=TOpenDialog.Create(Self);
OpenDialog.DefaultExt := 'xls ';
OpenDialog.Filter := 'Microsoft Excel 文件 (*.xls)|*.xls ';
OpenDialog.Execute;
if OpenDialog.FileName <> ' ' then
try
with ADOQryInfoExcel do
begin
Close;
Sql.Clear;
Sql.Add( ' SELECT TOP 1 * FROM OPENROWSET ');
Sql.Add( '( ');


Sql.Add( ' ' 'MSDASQL.1 ' ' ');
Sql.Add( ', ');
Sql.Add( ' ' 'DRIVER=Microsoft Excel Driver (*.xls); ');
Sql.Add( 'DBQ= '+OpenDialog.FileName+ ' ' ' ');
Sql.Add( ', ');
Sql.Add( ' ' 'SELECT * FROM [Sheet1$] ' ' ');
Sql.Add( ') ');
Open;
end;
if Copy(ADOQryInfoExcel.Fields[2].AsString,1,4) <> mUser.UserArea then
begin
ShowWIE(1, '不能导入其它地区数据! ');
ADOQryInfoExcel.Close;
ADOConInfoExcel.Close;
exit;
end;
//ADOConInfoExcel.BeginTrans;
with ADOComInfoExcel do
begin
CommandText:= ' UPDATE C ';
CommandText:=CommandText+ ' SET C.MNo=A.类别编码,C.MName=A.材料名称,C.spec=A.材料规格,C.unit=A.材料单位,C.Factory=A.生产厂家,C.TradeMark=A.厂牌,C.Price=A.材料单价,C.pingyin=A.材料拼音,C.hs=A.换算系数 FROM InfoPrice '+mUser.UserArea;
CommandText:=CommandText+ ' C, OPENROWSET ';
CommandText:=CommandText+ '( ';
CommandText:=CommandText+ ' ' 'MSDASQL.1 ' ' ';
CommandText:=CommandText+ ', ';
CommandText:=CommandText+ ' ' 'DRIVER=Microsoft Excel Driver (*.xls); ';
CommandText:=CommandText+ 'DBQ= '+OpenDialog.FileName+ ' ' ' ';
CommandText:=CommandText+ ', ';
CommandText:=CommandText+ ' ' 'SELECT * FROM [Sheet1$] ' ' ';
CommandText:=CommandText+ ') A WHERE C.RDate=A.发布日期 AND C.RNO=A.发布编号 AND C.Area=A.地区编码 ';
Execute;
CommandText:= ' INSERT INTO InfoPrice '+mUser.UserArea;
CommandText:=CommandText+ '(RDate,RNO,Area,MNo,MName,spec,unit,Factory,TradeMark,Price,pingyin,hs) ';
CommandText:=CommandText+ ' SELECT 发布日期,发布编号,地区编码,类别编码,材料名称,材料规格,材料单位,生产厂家,厂牌,材料单价,材料拼音,换算系数 FROM OPENROWSET ';
CommandText:=CommandText+ '( ';
CommandText:=CommandText+ ' ' 'MSDASQL.1 ' ' ';
CommandText:=CommandText+ ', ';
CommandText:=CommandText+ ' ' 'DRIVER=Microsoft Excel Driver (*.xls); ';
CommandText:=CommandText+ 'DBQ= '+OpenDialog.FileName+ ' ' ' ';
CommandText:=CommandText+ ', ';
CommandText:=CommandText+ ' ' 'SELECT * FROM [Sheet1$] ' ' ';
CommandText:=CommandText+ ') A ';
CommandText:=CommandText+ ' WHERE NOT EXISTS(SELECT 1 FROM InfoPrice '+mUser.UserArea+ ' C ';
CommandText:=CommandText+ ' WHERE C.RDate=A.发布日期 AND C.RNO=A.发布编号 AND C.Area=A.地区编码) ';
Execute;
end;
//ADOConInfoExcel.CommitTrans;
RefreshGridData;
ShowWIE(2, '导入成功! ');
except
//ADOConInfoExcel.RollbackTrans;
ShowWIE(2, '导入失败! ');
end;
finally
ADOQryInfoExcel.Close;
ADOConInfoExcel.Close;
OpenDialog.Free;
end;}

热点排行