CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

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

楼主OverIsOver(花不飘零水不流(ˉωˉ)纵使要梦说穿,缘了就是完^ō^刪去絲絲斷綫 盼望可將結果扭轉◆晕就一个字哈◇)2005-06-01 19:51:24 在 Delphi / 数据库相关 提问

晕死了,要辞职的时候才发现这个问题,除了通过把本地目录共享外,还有其它什么办法么?  
  经理说可以通过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$] 问题点数:50、回复次数:7Top

1 楼CoolSlob()回复于 2005-06-01 22:11:22 得分 2

友情接分Top

2 楼trueman3000(穷人)回复于 2005-06-02 09:12:27 得分 2

好象OpenDataSource不能在客户端导如数据库,除非它们在同一机器上。Top

3 楼qq153788616(啊灌)回复于 2005-06-02 10:41:58 得分 2

顶Top

4 楼ron_xin(星雨)回复于 2005-06-02 13:09:31 得分 14

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.  
  Top

5 楼zhlwyy(生活很累,但是因为生活才有意义。)回复于 2005-06-02 13:19:27 得分 30

去DELPHIBBS看一下碧血剑的文章就明白了Top

6 楼OverIsOver(花不飘零水不流(ˉωˉ)纵使要梦说穿,缘了就是完^ō^刪去絲絲斷綫 盼望可將結果扭轉◆晕就一个字哈◇)回复于 2005-06-02 15:08:54 得分 0

晕啊,我建了个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$]  
   
  我这样用有问题吗?谢谢指点一下了   :)Top

7 楼OverIsOver(花不飘零水不流(ˉωˉ)纵使要梦说穿,缘了就是完^ō^刪去絲絲斷綫 盼望可將結果扭轉◆晕就一个字哈◇)回复于 2005-06-02 15:56:16 得分 0

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(海龙-->有志者事竟成!)   的指点啊   :)Top

相关问题

  • excel导入sqlserver时
  • 用OpenDataSource怎么在客户端导入excel数据到SQLServer呢?
  • Excel导入SQLSERVER的问题
  • excel数据导入sqlserver的问题?
  • 急,将excel的数据导入到sqlserver !!!
  • 关于excel导入sqlserver中,excel的工作表名称问题!
  • 为什么从Excel导入到Sqlserver中汉字无法导入变成NULL?
  • 高手请进,如何将EXCEL数据导入SQLSERVER?
  • 高手请进,如何将EXCEL数据导入SQLSERVER?- VB
  • 高手请进,如何将EXCEL数据导入SQLSERVER?- VBA

关键词

  • ea
  • 数据
  • excel
  • 文件
  • adoquery
  • twidestringfield
  • excelworksheet
  • emptyparam
  • excelapplication
  • ltrim

得分解答快速导航

  • 帖主:OverIsOver
  • CoolSlob
  • trueman3000
  • qq153788616
  • ron_xin
  • zhlwyy

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo