用OpenDataSource怎么在客户端导入excel数据到SQLServer呢?

OverIsOver 2005-06-01 07:51:24
晕死了,要辞职的时候才发现这个问题,除了通过把本地目录共享外,还有其它什么办法么?
经理说可以通过ADOQuery先查询,然后再提交到服务器,请问有大虾知道怎么做吗?
这是我的SQL语句:
select top 39 IsNULL( Rtrim(LTrim(ExchAName)),'-1') as ExchAName,IsNULL( Rtrim(LTrim(imDJName)),'-1') as imDJName,IsNULL( Rtrim(LTrim(EA2)),'-1') as EA2,IsNULL( Rtrim(LTrim(imEA3)),'-1') as imEA3,IsNULL( Rtrim(LTrim(EA4)),'-1') as EA4,IsNULL( Rtrim(LTrim(EA5)),'-1') as EA5,IsNULL( Rtrim(LTrim(EA6)),'-1') as EA6,IsNULL( Rtrim(LTrim(EA7)),'-1') as EA7,IsNULL( Rtrim(LTrim(EA8)),'-1') as EA8,IsNULL( Rtrim(LTrim(EA9)),'-1') as EA9,IsNULL( Rtrim(LTrim(EAA)),'-1') as EAA,IsNULL( Rtrim(LTrim(imComeFrom)),'-1') as imComeFrom into #x90skxkImport from OpenDataSource('Microsoft.Jet.OLEDB.4.0', 'Data Source=C:\DOCUME~1\blue\LOCALS~1\Temp\$szLWx0sla\$$$x90skxkImport.xls;User ID=Admin;Password=;Extended properties=Excel 8.0')...[_1$]
...全文
134 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq153788616 2005-06-02
  • 打赏
  • 举报
回复
trueman3000 2005-06-02
  • 打赏
  • 举报
回复
好象OpenDataSource不能在客户端导如数据库,除非它们在同一机器上。
OverIsOver 2005-06-02
  • 打赏
  • 举报
回复
select top 39 ExchAName,imDJName,EA2,imEA3,EA4,EA5,EA6,EA7,EA8,EA9,EAA into [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=192.168.0.7;DataBase=TGateway;].##x90skxkImport from [_1$]
这样就行了,谢谢 zhlwyy(海龙-->有志者事竟成!) 的指点啊 :)
OverIsOver 2005-06-02
  • 打赏
  • 举报
回复
晕啊,我建了个TADOConnection指向 本地的xls文件,然后这句出错了,说
“SELECT 子句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。”
select ExchAName,imDJName,EA2,imEA3,EA4,EA5,EA6,EA7,EA8,EA9,EAA into ##x90skxkImport in [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=192.168.0.7;DataBase=TGateway;] from [_1$]

我这样用有问题吗?谢谢指点一下了 :)
zhlwyy 2005-06-02
  • 打赏
  • 举报
回复
去DELPHIBBS看一下碧血剑的文章就明白了
ron_xin 2005-06-02
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Excel97, OleServer, ADODB, Db, Grids, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
OpenDialog1: TOpenDialog;
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
ADOQuery1Schedule_No: TWideStringField;
ADOQuery1OrderDate: TWideStringField;
ADOQuery1Order_no: TWideStringField;
ADOQuery1Po_No: TWideStringField;
ADOQuery1Customer: TWideStringField;
ADOQuery1Part_No: TWideStringField;
ADOQuery1Qty: TWideStringField;
ADOQuery1Deliver: TWideStringField;
ADOQuery1Remarks: TWideStringField;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
j : integer;
EParam : OleVariant;
DocuType : OleVariant;
wkbk : _WorkBook;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));
//文件打开的初始路径
opendialog1.Execute;

Try
ExcelApplication1.Connect;
Except
Showmessage('Excel文件打开失败!');
Exit;
End;

ExcelApplication1.Visible[0]:=False;
ExcelApplication1.Caption:='Excel数据文件';

EParam:=EmptyParam;
DocuType:=0;
try
wkBk:=ExcelApplication1.Workbooks.Add(EParam, DocuType);

wkBk:=ExcelApplication1.WorkBooks.Open(opendialog1.FileName,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,
EmptyParam,EmptyParam,DocuType,EmptyParam,DocuType);
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;
showmessage('请选择EXCEL数据表格!');
exit;
end;
end;

ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook);//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1与Excelworkbook1建立连接

//开始从EXCEL中取数,放到stringgrid中,取完数后关闭EXCEL
for i:=2 to 10 do
begin
if trim(excelworksheet1.cells.item[i,1])<>'' then
begin
ADOQuery1.Append;
ADOQuery1.fieldbyname('Schedule_No').value:=ExcelWorksheet1.Cells.Item[i,1];
ADOQuery1.fieldbyname('OrderDate').value:=ExcelWorksheet1.Cells.Item[i,2];
ADOQuery1.fieldbyname('Order_no').value:=ExcelWorksheet1.Cells.Item[i,3];
ADOQuery1.fieldbyname('Po_No').value:=ExcelWorksheet1.Cells.Item[i,4];
ADOQuery1.fieldbyname('Customer').value:=ExcelWorksheet1.Cells.Item[i,5];
ADOQuery1.fieldbyname('Part_No').value:=ExcelWorksheet1.Cells.Item[i,6];
ADOQuery1.fieldbyname('Qty').value:=ExcelWorksheet1.Cells.Item[i,7];
ADOQuery1.fieldbyname('Deliver').value:=ExcelWorksheet1.Cells.Item[i,8];
ADOQuery1.fieldbyname('Remarks').value:=ExcelWorksheet1.Cells.Item[i,9];
ADOQuery1.Post;
end
end;

ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
showmessage('数据导入完毕!');
end;

end.
日总是我哥 2005-06-01
  • 打赏
  • 举报
回复
友情接分

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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