execl表能导入sybase数据库吗,如果能,应该怎么导入呢?
解决方案 »
- 如何给cxGrid一个Cell赋值?
- 请问学习Delphi有什么书特别好的吗?
- ADO 连接SQL
- 有关TStringGrid控件滚动条位置
- 关于Printer.Canvas.TextOut( x, y, 'xxxxx')中x , y尺寸的单位
- 这些玩艺在哪呀?
- 又一个奇怪的问题?(急)
- 高手来帮我看看这句话哪儿有问题吧…………盼……
- 终于升级了,新手,高手来吧,有分送呀,时间有限!!!!!!!
- 页如何使其不可选?
- 请问:类似于病毒库更新的程序是什么原理呢?我知道,肯定是向FTP服务器或者HTTP服务器发请求,然后比对文件,再下载。可是究竟是怎么实
- 关于设计报表时候遇到的一个极难的问题,请指教谢谢!!!
while not ADOQuery.eof do
Command.text:='Insert xxxx into 表
Command.execute。如果是用query的话,那就是
query.insert;
while not ADOQuery.eof do
query.Fileds[1]:=ADOQuery.Fields[1];
query.Fields[n]:=ADOQuery.Fields[n];上面只是一个思路,并不意味着语法正确,仅供参考。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966
看看这个贴子吧,如果有导入SYBASE的话你就赚了,速度比一条条导快多了,一万条也只有几秒钟:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966
===============================================================================
你这个方法是很好,我早就知道了,不过如果EXCEL的表结构和你的数据库的结构完全不一样的时候你就没辙了,尤其是EXCEL是一个单表,而数据库是个多表操作的规范化数据表就彻底不行了。
然后可以设定1000条提交一次。
var i,j:integer;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径
opendialog1.Execute;
Try
ExcelApplication1.Connect;//EXCEL应用程序
Except
MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel Application';
try
excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定的EXCEL 文件
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;showmessage('请选择EXCEL电子表格!');
exit;
end;
end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1与Excelworkbook1建立连接
//开始从EXCEL中取数,放到stringgrid1中,取完数后关闭EXCEL
for i:=1 to 1000 do//最大取值1000
for j:=1 to 6 do
begin
if trim(excelworksheet1.cells.item[i+1,1])<>'' then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
end
else
begin
label3.caption:=inttostr(i-1);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
//将第一条数据赋给编辑框
edit2.text:=stringgrid1.Cells[1,1];
edit1.text:=stringgrid1.Cells[2,1];
edit3.text:=stringgrid1.Cells[3,1];
edit4.text:=stringgrid1.Cells[4,1];
edit5.text:=stringgrid1.Cells[5,1];
exit;
end;
end;
end;
程序有问提的吧,怎么我execl表中才400来条记录,用你的程序一执行就死在那儿了呢
至少比逐条处理快.
程序根据你的需求自己改一下就可以了。