delphi怎样将excel导入sqlserver2000?(50)

  • 主题发起人 主题发起人 rgn
  • 开始时间 开始时间
R

rgn

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi怎样将excel导入sqlserver2000?sql考试表a中有字段期数,身份证,姓名,成绩(可为空)每期考试先录入期数,身份证,姓名,成绩暂时为空,然后导出到excel中,另外一个部门等考试结束后在excel表中输入成绩,然后发回给录入数据的部门,录入数据的部门怎样将excel表中的成绩导入sql数据库中呢?
 
这个帖子决对可以解决你的问题。http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966
 
把excel手动处理一下,去头去尾程序打开excel 循环读出,写入提交关闭excel中间加一些出错的处理
 
我现在采取一种比较安全的方法,就是将EXCEL先读取到advStringgrid控件中,然后从控件中再读取,读到控件中很简单,只要loadexcelfile一下就可以了
 
var sql : string; begin adoquery1.close; adoquery1.sql.clear; sql:=insert into tbl1(id,name,sex,ph,adat) select id,name,sex,ph,adat from openrowset(microsoft.jet.oledb.4.0,excel 5.0;hdr=yes;database=d:/d.xls,sheet1$) ;//sheet1$要求的excel表格 adoquery1.sql.add(sql); adoquery1.execsql; end;
 
adoconnection2.Close; CurrTableName := stringReplace(CurrTableName, chr(39), '', [rfReplaceAll]); CurrTable := stringReplace(CurrTable, chr(39), '', [rfReplaceAll]); tr := 'SELECT * into [msqldr_' + CurrTableName + '] IN [ODBC]' + '[ODBC;Driver=SQL Server;UID=ufosyuser;PWD=zzhxbm;Server=' + zswinservername + ';DataBase=' + zswinkhdata + ';]from [' + CurrTable + ']'; adoconnection2.Execute(tr);
 
OpenDataSource
 
Provider=Microsoft.Jet.OLEDB.4.0 Data Source=MyExcelFile.xls Extended Properties=Excel 8.0 Persist Security Info=False with ADOQuery1 do begin First; repeat supr := Trim(ADOQuery1.Fields[2].Value); curr := 'RMB'; mepr := ADOQuery1.Fields[5].Value; comp := inttostr(ADOQuery1.Fields[0].Value); mano := Trim(ADOQuery1.Fields[1].Value); date := ADOQuery1.Fields[3].Value; unpr := ADOQuery1.Fields[4].Value; //ShowMessage(comp+mano+supr+date+curr+floattostr(unpr)+floattostr(mepr)); ADOQuery2.SQL.Clear; ADOQuery2.SQL.Add('insert into ma09d(m9comp,m9mano,m9supr,m9date,m9curr,m9unpr,m9mepr)'); ADOQuery2.SQL.Add('values(:A,:B,:C,:D,:E,:F,:G)'); ADOQuery2.Parameters.ParamByName('A').Value := comp; ADOQuery2.Parameters.ParamByName('B').Value := mano; ADOQuery2.Parameters.ParamByName('C').Value := supr; ADOQuery2.Parameters.ParamByName('D').Value := date; ADOQuery2.Parameters.ParamByName('E').Value := curr; ADOQuery2.Parameters.ParamByName('F').Value := unpr; ADOQuery2.Parameters.ParamByName('G').Value := mepr; ADOQuery2.ExecSQL; ADOQuery2.Close; ADOQuery1.Next; until ADOQuery1.Bof; end;
 
这样不是太麻烦了吗SQL本身就可以对数据导入导出,查下相关资料吧。。一个个读了再处理不是太费事了吗
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部