当前位置:首页 > 芯闻号 > 充电吧
[导读]见很多新入门学编程的朋友,都问同一个问题,现在把我个人开发中用到的方法公布如下,您有好的想法请多多交流。一、下面是用存储过程导入ACCESS数据到SQL SERVER数据库,代码少。CREATE PR

见很多新入门学编程的朋友,都问同一个问题,现在把我个人开发中用到的方法公布如下,您有好的想法请多多交流。

一、下面是用存储过程导入ACCESS数据到SQL SERVER数据库,代码少。

CREATE PROCEDURE PPED
@TN varchar(50)
 AS
    select  *  into #temp1 from Opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="D:/Excel2007/28.xls";Extended Properties=Excel 5.0;Persist Security
Info=false')...sheet1$

   select  序号 as orderNO,货号 as ProductNO,品名 as ProductName ,规格 as Specification ,单位 as Unit,数量 as Quantity,完成 as finished,备注 as Remark from #temp1

二、一、下面是用存储过程导出SQL SERVER 数据到数据库 ACCESS,在Delphi7 里写代码比较少。

导出EXCEL:

procedure  OuttoExcel4(const sFileName:string;sDataSet:TDataSet;Grid:TDBGrid);

procedure  OuttoExcel4(const sFileName:string;sDataSet:TDataSet;Grid:TDBGrid);
var
  v: variant;
  i,j: integer;
begin
    v := CreateOLEObject('Excel.Application');
    v.WorkBooks.Add;
    v.Visible := True;
    Application.BringToFront;
    try
    try
        sDataSet.DisableControls;
        for i:=0 to Grid.FieldCount-1 do
        begin
           v.goto('R1'+'C'+IntToStr(i+1));
           v.ActiveCell.FormulaR1C1 := Grid.Columns[i].Title.Caption;
        end;
        j:=2;
        sDataSet.First;
        while not sDataSet.Eof do
        begin
           for i:=0 to Grid.FieldCount-1 do
           begin
              v.goto('R'+IntToStr(j)+'C'+IntToStr(i+1));
              v.ActiveCell.FormulaR1C1 := sDataSet.FieldByName(Grid.Columns[i].fieldname).AsString;
           end;
           sDataSet.Next;
           j:=j+1;
        end;
    except

    end;
    finally
       sDataSet.First;
       sDataSet.EnableControls;
       v.quit;
    end;
end; 

以上代码在 Delphi7+SQL Server2000 中编译通过。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭