我想在Delphi 程序中实现将Excel 中的数据导入到Sql server数据库中,遇到如下问题,求助各位高手:
1、判断Excel 中某一格是否为空,如何做?
    用过Excel.cell[i,j].value='' 不行;Excel.cell[i,j].value=NULL也不行
2、Sql server表中某一字段不允许重复值出现,如何在导入前就判断出Excel表中该字段的值是否与Sql server表中原来的记录相重复?
3、不知能否用程序来调用Sql server的DTS?
不知各位高手有什么好的办法?

解决方案 »

  1.   

    Trim(Excel.cell[i,j].value)=''行吗?
      

  2.   

    1 试试楼上的方法
    2 你可以直接在sql的插入中(sql语句或者触发器)再判断啊
    3 你可以用sql语句或者用sqldmo来调用dts,不过如果你想从excel中导入数据到sql,还有更简单的办法:
    下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。
    INSERT INTO your_table
    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')
      

  3.   

    呵呵,这段代码我到是做了,
    只是最近很忙一直没有时间来整理,
    等我整理过后就在这里发表吧!~~~你的第二个问题可以这样来判断啊
    locate方法来判断啊!~~~如果存在,那就 提示用户是否需要覆盖
    第一 个问题:你的意思是不是说需要首先判断在excel表中总共用到了哪些列,哪些行呢
    如果是这样,那简单,
    具体代码我忘记了,我等一下回去在来给你代码好不
      

  4.   

    Trim(Excel.cell[i,j].value)=''  成功了,谢谢licese
    不知如何取得我打开的Excel中的最大行数,最大列数
      

  5.   

    楼主连接excel库是什么方法,不同的方法
    Excel中的最大行数,最大列数的取法不同
      

  6.   

    连接方法如下:
    ExcelApp := CreateOleObject('Excel.Application');   
    ExcelApp.Visible := False ;
    ExcelApp.WorkBooks.Add;         
    ExcelApp.WorkBooks.Open(xlsFileName );   
    ExcelApp.WorkSheets[1].Activate;
      

  7.   

    可以得到已用的行数和列数procedure TForm1.Button1Click(Sender: TObject);
    var
    filename:string;
    ExcelApp: Variant;
    lastrow,lastcol:integer;
    begin
     if importopendialog.Execute then
     begin
       filename:=importopendialog.FileName;
       ExcelApp := CreateOleObject( 'Excel.Application' );
       ExcelApp.Visible := false;
       ExcelApp.WorkBooks.Open(filename);
       ExcelApp.WorkSheets[1].Activate;   ExcelApp.Cells.SpecialCells(11,EmptyParam).Activate;
       lastRow := ExcelApp.ActiveCell.Row;
       lastCol := ExcelApp.ActiveCell.Column;
       showmessage(inttostr(lastrow));
       showmessage(inttostr(lastcol));   ExcelApp.WorkBooks.Close;
       ExcelApp.Quit;
     end;
    end;相关帖子 http://expert.csdn.net/Expert/topic/1639/1639508.xml?temp=.1147119
      

  8.   

    是否Excel中的有数据的最大行数,最大列数?
    没有数据的好像没穷没尽的。
    可以用一个循环判断Trim(Excel.cell[i,j].value)=''来确定最大行数,最大列数
      

  9.   

    真是太奇怪了,我将Excel 的内容导入到Sql server中,出现如下错误:
    Couldn’t perform the edit because another user changed the record
    不知是哪出错了?