Delphi的EXE文件导出数据库
delphi中导入与导出
Excel文件
SELECT * into newtablename FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\b.xls";Extended Properties="Excel 8.0;HDR=Yes; ";Persist Security Info=False')...sheet1$
SELECT * into newtablename FROM
OPENROWSET('Microsoft.Jet.OLEDB.4.0','c:\db1.mdb';'admin';'', 表名或查询语句)
delphi语句:
ADOQuery1.sql.Add('SELECT * into newtablename FROM
Access到Dbf
ADOQuery.sql.Add('SELECT * INTO aa in ''c:\'' ''dbase 5.0;'' FROM aa');
Access到EXcel
ADOQuery3.sql.Add('SELECT * INTO sheet表名 in ''c:\文件.xls'' ''EXCEL 5.0;'' FROM 表名');
/*动态文件名
declare @fn varchar(20),@s varchar(1000)
set @fn = 'c:\test.xls'
DELPHI将EXCEL数据导入到数据库中源码
DELPHI将EXCEL数据导入到数据库中源码以下是一个使用DELPHI将EXCEL数据导入到数据库的示例源码:```pascalunit Unit1;interfaceusesWinapi.Windows,Winapi.Messages,System.SysUtils,System.Variants,System.Classes,Vcl.Graphics,Vcl.Controls,Vcl.Forms,Vcl.Dialogs,Vcl.StdCtrls,Data.Win.ADODB,Vcl.Grids,Vcl.DBGrids,Vcl.ExtCtrls,Excel97,ActiveX;typeTForm1 = class(TForm)Label1: TLabel;Button1: TButton;DataSource1: TDataSource;DBGrid1: TDBGrid;procedure Button1Click(Sender: TObject);procedure FormCreate(Sender: TObject);private{ Private declarations }procedure ImportExcelData(const AFileName, ASheetName: string);public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);varOpenFileDialog: TOpenDialog;beginOpenFileDialog := TOpenDialog.Create(nil);tryOpenFileDialog.Filter := 'Excel Files (*.xls, *.xlsx),*.xls;*.xlsx';if OpenFileDialog.Execute thenbeginImportExcelData(OpenFileDialog.FileName, 'Sheet1');ShowMessage('Data imported successfully!');end;finallyOpenFileDialog.Free;end;end;procedure TForm1.FormCreate(Sender: TObject);beginDataSource1.DataSet := ADOQuery1;end;procedure TForm1.ImportExcelData(const AFileName, ASheetName: string);varExcelApp: TExcelApplication;Workbook: TExcelWorkbook;Worksheet: TExcelWorksheet;Range: Variant;I, J, StartRow, LastRow, StartColumn, LastColumn: Integer;FieldNames: TStringList;FieldValues: TStringList;beginExcelApp := TExcelApplication.Create(nil);tryExcelApp.Connect;Workbook := ExcelApp.Workbooks.Open(AFileName);Worksheet := Workbook.Sheets.Item[ASheetName] as TExcelWorksheet;Range := edRange;StartRow := Range.Row;LastRow := Range.Row + Range.Rows.Count - 1;StartColumn := Range.Column;LastColumn := Range.Column + Range.Columns.Count - 1;FieldNames := TStringList.Create;FieldValues := TStringList.Create;tryfor J := StartColumn to LastColumn dobeginFieldNames.Add(VarToStr(Worksheet.Cells[StartRow, J].Value));end;for I := StartRow + 1 to LastRow dobeginFieldValues.Clear;for J := StartColumn to LastColumn dobeginFieldValues.Add(VarToStr(Worksheet.Cells[I, J].Value)); end;//将数据插入数据库中ADOQuery1.ExecSQL;end;finallyFieldNames.Free;FieldValues.Free;end;Workbook.Close;finallyExcelApp.Disconnect;ExcelApp.Free;end;end;end.```上述示例中,需要使用到 `TExcelApplication` 和`TExcelWorkbook` 组件,这需要引入 `Excel97` 单元。
用Delphi进行数据库之间转换
用Delphi进行数据库之间转换在实际应用中,可能会遇到将一种数据库转为另一种数据库的情况,而Delphi可以完成这种功能。
尤其是需要将以前的dbase 数据库结构及内容转换成其它数据库结构时,采用此方法简单、快速且安全。
Delphi是一种Windows应用程序开发软件。
它速度快,具有强大且容易使用的可视化开发环境,并采用了具有弹性和可重用的完整的面向对象程序语言。
由于以上的这些特点,Delphi可以让我们快速地建立起主从结构的应用程序,可产生单一可执行文件与动态链接库以及从单机、网络到主从结构的应用程序。
使用Delhpi可以方便而快速地建立强大的数据库应用程序,可以和Paradox、dbase、Lo cal InterBase Server、Foxpro及ODBC数据源等多种桌面型数据库直接配合使用。
数据库转换方法1.所使用的控件2.TBatchMove控件的使用TBatchMove允许在一组记录或是整个数据表中执行特种作业, 这个控件的主要用途在于把数据从服务器中卸到本地的数据源供分析或进行其他操作。
TBatchMove可以在目的地建立对应于原数据表内容的数据表,自动将列名及数据类型进行适当的对应操作。
TBatchMove两个特性指明批量移动(Batch Move)操作的源表及目的表。
Source指定一个对应于已有的源数据表的数据集(一个Tquery或Ttable控件),Destination指明对应于一个数据库数据表的Ttable控件,目的数据表可以是已经存在的也可以是不存在的。
Mode特性指明TBatchMove对象所要做的事情:我们可以根据batCopy模式,对数据库类型进行适当的转换,以下是从dBASE类型到其它类型之间的转换结果:数据库转换举例现有用Foxbase开发的财务程序中的会计科目数据库(kjkmk.dbf),系统将升级到Window s环境下开发,数据库将采用Paradox语言。
Delphi将excel数据导入到数据库中源码
Delphi将excel数据导入到数据库中源码:procedure TFrm_Drsj.Button1Click(Sender: TObject);const BeginRow= 1; BeginCol= 2;variRE:Integer;iRow,iCol :Integer; //列、行MsExcel,MsExcelWorkBook,MsExcelWorkSheet:Variant;beginTryOpenDialog1.FileName:='*.xls';if not OpenDialog1.Execute thenbeginExit;end;if ExtractFileExt(OpenDialog1.FileName) <> '.xls' thenbeginMessageBox(0, '请选择正确的excel文件',PChar('提示'),MB_OK or MB_ICONW ARNING);Exit;end;MsExcel:=CreateOleObject('Excel.Application');MsExcel.visible:=true;MsExcelWorkBook:=MsExcel.WorkBooks.Open(OpenDialog1.FileName);ExceptExit;end;//开始从EXCEL文件读取相关信息,并导入数据库中的users表TryApplication.ProcessMessages;//防止进程阻塞iRow:=BeginRow;iCol:=BeginCol;while trim(msExcel.WorkSheets['sheet1'].Cells[iCol,iRow].value) <> '' dobeginwith adoquery1 dobeginClose;SQL.Clear;SQl.Add('INSERT INTO users(id,mm,lxfs,yhsf,xm,xb,szxmc,nj) values(:id,:mm,:lxfs,:yhsf,:xm,:xb,:szxmc,:nj)');parameters.ParamByName('id').Value:=Trim(msExcel.WorkSheets[1].Cells[iCol,iRow].value);parameters.ParamByName('mm').Value:=Trim(msExcel.WorkSheets[1].Cells[iCol,iRow].value);parameters.ParamByName('lxfs').Value:=Trim(msExcel.WorkSheets[1].Cells[iCol,iRow+1].value) ;parameters.ParamByName('yhsf').Value:=Trim(msExcel.WorkSheets[1].Cells[iCol,iRow+2].value );parameters.ParamByName('xm').Value:=Trim(msExcel.WorkSheets[1].Cells[iCol,iRow+3].value) ;parameters.ParamByName('xb').Value:=Trim(msExcel.WorkSheets[1].Cells[iCol,iRow+4].value);parameters.ParamByName('szxmc').Value:=Trim(msExcel.WorkSheets[1].Cells[iCol,iRow+5].val ue);parameters.ParamByName('nj').Value:=Trim(msExcel.WorkSheets[1].Cells[iCol,iRow+6].value);ExecSQL;end;iCol:=iCol+1;end;MsExcel.Quit;ExceptMessageBox(self.Handle,'数据导入失败!','系统提示',0);;MsExcel.Quit;Exit;end;//end tryMessageBox(self.Handle,'数据导入成功!','系统提示',0);Frm_Drsj.Close;end;。
delphi导出数据至Excel的几种方法及比较
delphi导出数据至E xcel的几种方法及比较一、delphi快速导出ex celuses ComObj,clipbr d;functi on ToExce l(sfilen ame:string; ADOQue ry:TADOQu ery):boolea n;constxlNorm al=-4143;vary : intege r;tsList : TStrin gList;s,filena me :string;aSheet :Varian t;excel:OleVar iant;savedi alog :tsaved ialog;beginResult := true;trye xcel:=Create OleOb ject('Excel.Applic ation');e xcel.workbo oks.add;except//screen.cursor:=crDefa ult;showme ssage('无法调用Ex cel!');exit;end;savedi alog:=tsaved ialog.Create(nil);savedi alog.FileName:=sfilen ame; //存入文件savedi alog.Filter:='Excel文件(*.xls)|*.xls';if savedi alog.Execut e thenbegini f FileEx ists(savedi alog.FileNa me) thentryif application.messag ebox('该文件已经存在,要覆盖吗?','询问',mb_yesno+mb_iconquestion)=idyesthenDelete File(PChar(savedi alog.FileNa me))elsebeginExcel.Quit;savedi alog.free;//screen.cursor:=crDefa ult;Exit;end;exceptExcel.Quit;screen.cursor:=crDefa ult;Exit;end;f ilena me:=savedi alog.FileNa me;end;savedi alog.free;if filena me='' thenbeginresult:=true;Excel.Quit;//screen.cursor:=crDefa ult;exit;end;aSheet:=excel.Worksh eets.Item[1];tsList:=TStrin gList.Create;//tsList.Add('查询结果'); //加入标题s:=''; //加入字段名for y := 0 to adoque ry.fieldC ount- 1 dobegins:=s+adoQue ry.Fields.Fields[y].FieldN ame+#9 ; Applic ation.Proces sMess ages;end;tsList.Add(s);trytryA DOQue ry.First;WhileNot ADOQue ry.Eof dob egins:='';for y:=0 to ADOQue ry.FieldC ount-1 dobegins:=s+ADOQue ry.Fields[y].AsStri ng+#9;Applic ation.Proces sMess ages;end;tsList.Add(s);ADOQue ry.next;end;C lipbo ard.AsText:=tsList.Text;e xceptr esult:=false;end;finall yt sList.Free;aSheet.Paste;Messag eBox(A pplica tion.Handle,'数据导出完毕!','系统提示',MB_ICO NINFO RMA TION or MB_OK);tryi f copy(FileNa me,length(FileNa me)-3,4)<>'.xls' thenFileNa me:=FileNa me+'.xls';E xcel.Active Workb ook.SaveAs(FileNa me, xlNorm al, '', '', False, False);exceptExcel.Quit;s creen.cursor:=crDefa ult;exit;end;Excel.V isibl e := false; //true会自动打开已经保存的ex celExcel.Quit;Excel:= UnAssi gned;end;调用:ToExcel('D:\a.xsl',QueryT oExcel);//路径可以自定义-------------------------------------------------------------------------------------------------******************************************************************************************* ******二、delphi如何导出E XCEL,代码。
delphi查询数据库表及导出数据代码
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Clipbrd,Controls, Forms,Dialogs, StdCtrls, Buttons, Grids, DBGrids, DB, DBTables, Mask, DBCtrls,ComCtrls, ADODB,comobj;typeTForm5 = class(TForm)DBGrid1: TDBGrid;BitBtn1: TBitBtn;Label1: TLabel;Edit1: TEdit;Button1: TButton;Label2: TLabel;Label3: TLabel;Edit2: TEdit;Edit3: TEdit;ADOConnection1: TADOConnection;ADOQuery1: TADOQuery;DataSource1: TDataSource;Button2: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm5: TForm5;implementation{$R *.dfm}procedure TForm5.Button1Click(Sender: TObject); beginif (Edit1.Text<>'') and (Edit2.Text<>'') and (Edit3.Text<>'') thenwith ADOQuery1 dobeginclose;SQL.Clear;SQL.Add('select MB001 AS 品号,MB002 AS 品名,MB003 AS 规格, INVMC.MC007 AS 库存数量, CMSMC.MC002 AS 仓库, MB004 AS 库存单位,MB148 AS 采购单位FROM INVMB,INVMC,CMSMC where (MB109=''Y'') and (MB001=INVMC.MC001) and (CMSMC.MC001=INVMC.MC002) and(MB001 like ''%'+(Edit1.Text)+'%'') and (MB002 like ''%'+(Edit2.Text)+'%'') and (MB003 like ''%'+(Edit3.Text)+'%'') order by MB001') ;openendelse if (Edit1.Text<>'') and (Edit2.Text<>'') and (Edit3.Text='') thenwith ADOQuery1 dobeginclose;SQL.Clear;SQL.Add('select MB001 AS 品号,MB002 AS 品名,MB003 AS 规格,INVMC.MC007 AS 库存数量, CMSMC.MC002 AS 仓库, MB004 AS 库存单位,MB148 AS 采购单位FROM INVMB,INVMC,CMSMC where (MB109=''Y'') and (MB001=INVMC.MC001) and (CMSMC.MC001=INVMC.MC002) and (MB001 like ''%'+(Edit1.Text)+'%'') and (MB002 like ''%'+(Edit2.Text)+'%'') order by MB001') ;openendelse if (Edit1.Text<>'') and (Edit2.Text='') and (Edit3.Text<>'') thenwith ADOQuery1 dobeginclose;SQL.Clear;SQL.Add('select MB001 AS 品号,MB002 AS 品名,MB003 AS 规格, INVMC.MC007 AS 库存数量, CMSMC.MC002 AS 仓库, MB004 AS 库存单位,MB148 AS 采购单位FROM INVMB,INVMC,CMSMC where (MB109=''Y'') and (MB001=INVMC.MC001) and (CMSMC.MC001=INVMC.MC002) and (MB001 like ''%'+(Edit1.Text)+'%'') and (MB003 like ''%'+(Edit3.Text)+'%'') order by MB001') ;openendelse if (Edit1.Text='') and (Edit2.Text<>'') and (Edit3.Text<>'') thenwith ADOQuery1 dobeginclose;SQL.Clear;SQL.Add('select MB001 AS 品号,MB002 AS 品名,MB003 AS 规格, INVMC.MC007 AS 库存数量, CMSMC.MC002 AS 仓库, MB004 AS 库存单位,MB148 AS 采购单位FROM INVMB,INVMC,CMSMC where (MB109=''Y'') and (MB001=INVMC.MC001) and (CMSMC.MC001=INVMC.MC002) and (MB003 like ''%'+(Edit3.Text)+'%'') and (MB002 like ''%'+(Edit2.Text)+'%'') order by MB001') ;openendelse if (Edit1.Text<>'') and (Edit2.Text='') and (Edit3.Text='') thenwith ADOQuery1 dobeginclose;SQL.Clear;SQL.Add('select MB001 AS 品号,MB002 AS 品名,MB003 AS 规格, INVMC.MC007 AS 库存数量, CMSMC.MC002 AS 仓库, MB004 AS 库存单位,MB148 AS 采购单位FROM INVMB,INVMC,CMSMC where (MB109=''Y'') and (MB001=INVMC.MC001) and (CMSMC.MC001=INVMC.MC002) and (MB001 like ''%'+(Edit1.Text)+'%'') order by MB001') ;openendelse if (Edit1.Text='') and (Edit2.Text<>'') and (Edit3.Text='') thenwith ADOQuery1 dobeginclose;SQL.Clear;SQL.Add('select MB001 AS 品号,MB002 AS 品名,MB003 AS 规格, INVMC.MC007 AS 库存数量, CMSMC.MC002 AS 仓库, MB004 AS 库存单位,MB148 AS 采购单位FROM INVMB,INVMC,CMSMC where (MB109=''Y'') and (MB001=INVMC.MC001) and (CMSMC.MC001=INVMC.MC002) and (MB002 like ''%'+(Edit2.Text)+'%'') order by MB001') ;openendelse if (Edit1.Text='') and (Edit2.Text='') and (Edit3.Text<>'') thenwith ADOQuery1 dobeginclose;SQL.Clear;SQL.Add('select MB001 AS 品号,MB002 AS 品名,MB003 AS 规格, INVMC.MC007 AS 库存数量, CMSMC.MC002 AS 仓库, MB004 AS 库存单位,MB148 AS 采购单位FROM INVMB,INVMC,CMSMC where (MB109=''Y'') and (MB001=INVMC.MC001) and (CMSMC.MC001=INVMC.MC002) and (MB003 like ''%'+(Edit3.Text)+'%'') order by MB001') ;openendend;procedure TForm5.Button2Click(Sender: TObject);varstr:string;i:Integer;excelapp,sheet:Variant;begin// lbl2.Caption:=DateTimeToStr(Now);str:='';dbgrid1.DataSource.DataSet.DisableControls;for i:=0 to dbgrid1.DataSource.DataSet.FieldCount-1 dostr:=str+dbgrid1.DataSource.DataSet.fields[i].DisplayLabel+char(9);str:=str+#13;dbgrid1.DataSource.DataSet.First;while not(dbgrid1.DataSource.DataSet.eof) do beginfor i:=0 to dbgrid1.DataSource.DataSet.FieldCount-1 dostr:=str+dbgrid1.DataSource.DataSet.Fields[i].AsString+char(9);str:=str+#13;dbgrid1.DataSource.DataSet.next;label1.Caption:=IntToStr(dbgrid1.DataSource.DataSet.RecNo);Application.ProcessMessages;end;//end whiledbgrid1.DataSource.DataSet.EnableControls;clipboard.Clear;Clipboard.Open;Clipboard.AsText:=str;Clipboard.Close;excelapp:=createoleobject('excel.application');excelapp.workbooks.add(1); // excelapp.workbooks.add(-4167);sheet:=excelapp.workbooks[1].worksheets[1];:='sheet1';sheet.paste;Clipboard.Clear;// :='宋体';// sheet.columns.font.size:=9;// sheet.Columns.AutoFit;excelapp.visible:=true;// lbl3.Caption:=DateTimeToStr(Now);end; end.。
用Delphi进行数据库之间转换
用Delphi进行数据库之间转换 在实际应用中,可能会遇到将一种数据库转为另一种数据库的情况,而Delphi可以完成这种功能。
尤其是需要将以前的dbase数据库结构及内容转换成其它数据库结构时,采用此方法简单、快速且安全。
Delphi是一种Windows应用程序开发软件。
它速度快,具有强大且容易使用的可视化开发环境,并采用了具有弹性和可重用的完整的面向对象程序语言。
由于以上的这些特点,Delphi可以让我们快速地建立起主从结构的应用程序,可产生单一可执行文件与动态链接库以及从单机、网络到主从结构的应用程序。
使用Delhpi可以方便而快速地建立强大的数据库应用程序,可以和Paradox、dbase、Lo cal InterBase Server、Foxpro及ODBC数据源等多种桌面型数据库直接配合使用。
数据库转换方法 1.所使用的控件 2.TBatchMove控件的使用 TBatchMove允许在一组记录或是整个数据表中执行特种作业,这个控件的主要用途在于把数据从服务器中卸到本地的数据源供分析或进行其他操作。
TBatchMove可以在目的地建立对应于原数据表内容的数据表,自动将列名及数据类型进行适当的对应操作。
TBatchMove两个特性指明批量移动(Batch Move)操作的源表及目的表。
Source指定一个对应于已有的源数据表的数据集(一个Tquery或Ttable控件),Destination指明对应于一个数据库数据表的Ttable控件,目的数据表可以是已经存在的也可以是不存在的。
Mode特性指明TBatchMove对象所要做的事情: 我们可以根据batCopy模式,对数据库类型进行适当的转换,以下是从dBASE类型到其它类型之间的转换结果: 数据库转换举例 现有用Foxbase开发的财务程序中的会计科目数据库(kjkmk.dbf),系统将升级到Window s环境下开发,数据库将采用Paradox语言。
VB与Delphi的简易数据库操作教程
数据库VB与delphi篇简易教程Author:lizhiliang06 Email :lizhiliang06@为什么我想花点时间给大家做一个数据库的简易教程呢?因为数据库方面的设计是比较容易学的,尽管如此,但是到现在为止,我感觉计算机的学生好像能真正写点程序的人也不多。
刚开始学习计算机时,我真的连键盘都还不会敲,以前几乎都没有碰过计算机,我相信大学以前这种人并不少。
记得大一刚开始时,我还没有计算机,开始学习自己写程序时,第一个VC程序是我花了整个晚上在同学的机上完成的,后来聪仔回忆起来说,那晚我吵死他了。
但是时间一晃,就过去了2年,我真的后悔我现在是大3了,要是大1或者大2那该多好啊,眼前看着我的师兄一个个地走出去,有时心里还真不是滋味。
想想大学里我得到了什么,在时间悄然溜走时,我得到了很多真诚相对,勤奋努力的人的帮助,他们让我提高了很多,这种真诚没有一丝一毫的虚假成分,我信赖他们,欣赏他们,一直当做自己的榜样。
然而我在校的时间也不多了,想尽自己的一点微薄之力帮助大家。
在这里我选择了VB和Delphi来操作数据库,因为我觉得数据库的编程用这两个工具还是比较方便的,界面的设计也比较容易,还有一个原因是我看了很多公司设计数据库方面的软件几乎都是这两种。
当然也有MFC的,但是在设计数据库方面,从开发速度上来说比不上VB和Delphi的,这点我们必须承认。
现在我跟兄弟们正在搞windows下的驱动程序,我可能就要多花时间在接下来的一个程序里面了,我们用的是VC,其实底层的东西是比较难学的。
当然要设计好数据库软件也绝对不是一件容易的事情。
很多需求分析和用户的生产流程等等也会让你很头痛。
编码只占20%,老师这样对我说过,事实也是这样。
希望有兴趣的后来者多多努力。
目录VB篇第一节 熟悉单机下VB如何操作数据库 (1)○1设计数据库○2连接数据库○3如何实现数据库的添加、查找、修改、删除功能○4实现数据库的导入、备份与恢复○5报表的设计○6VB如何导出数据到Excel文档○7总结第二节C/S模式下VB如何操作数据库 (30)○1介绍VB+SQL2000下C/S模式数据库的建立○2实现C/S模式需要用的控件。
Delphi数据库处理
Delphi数据库处理Delphi中处理数据库主要有两种方法,也就是BDE、ADO,从Delphi 6.0开始还加入了一种dbExpress方法。
另外,Delphi还提供了专门处理Borland 公司自己的数据库产品InterBase 数据库的专门的方法。
BDE(Borland Databas Engine),是Delphi中最古老的技术,从delphi 2.0加入BDE 技术以后,一直是Delphi处理数据库的事实上的标准。
BDE 是一个基于驱动程序的体系结构,每一种数据格式或数据源都有一种驱动程序来驱动相近的数据源。
同时,由于BDE 的驱动程序主要直接来自于第三方开发商,所以,对于像Oracle这些非微软的数据库,执行效率上比较高。
正是这些特点,使BDE 技术还是得到了很多数据库开发程序员的欢迎。
ADO 技术是微软提出来的处理关系型数据库和非关系型数据库的新技术,它基于微软被称为OLE DB的数据访问模式,它是专门为了给大范围商业数据源提供访问而设计的,包括传统的关系型数据表、电子邮件系统、图形格式、Internet资源等。
ADO 所需 ADO 顶层有三个对象:Connection、Command、Recordset。
Connection用以指定数据源,建立和数据源的连接。
Command 对象用以对数剧源执行指定的命令,可以接受SQL 语句,表和存储过程的名称,执行SQL 查询,更新数据,插入纪录等。
Recordset 对象表示的是来自表或命令执行结果的记录全集,操纵来自提供者的几乎所有数据。
由于ADO 技术的迅速普及,从Delphi 5.0 开始,加入了ADO 技术的模块,并逐步成为Delphi数据库设计的主流。
但是,和VB的ADODC 相比,它还是有所不同的,在数据绑定上,它更多的吸收了BDE 的特点,以做到和原来的程序兼容,同时,它又可以接受标 dbExpress 是Delphi 6.0加入的最新的数据库模块,它不使用缓存,可以快速浏览大量的数据,但是,不使用缓存就不能更改,所以它的标准方式是只读的。
用Delphi进行数据库之间转换
用Delphi进行数据库之间转换 在实际应用中,可能会遇到将一种数据库转为另一种数据库的情况,而Delphi可以完成这种功能。
尤其是需要将以前的dbase数据库结构及内容转换成其它数据库结构时,采用此方法简单、快速且安全。
Delphi是一种Windows应用程序开发软件。
它速度快,具有强大且容易使用的可视化开发环境,并采用了具有弹性和可重用的完整的面向对象程序语言。
由于以上的这些特点,Delphi可以让我们快速地建立起主从结构的应用程序,可产生单一可执行文件与动态链接库以及从单机、网络到主从结构的应用程序。
使用Delhpi可以方便而快速地建立强大的数据库应用程序,可以和Paradox、dbase、Lo cal InterBase Server、Foxpro及ODBC数据源等多种桌面型数据库直接配合使用。
数据库转换方法 1.所使用的控件 2.TBatchMove控件的使用 TBatchMove允许在一组记录或是整个数据表中执行特种作业,这个控件的主要用途在于把数据从服务器中卸到本地的数据源供分析或进行其他操作。
TBatchMove可以在目的地建立对应于原数据表内容的数据表,自动将列名及数据类型进行适当的对应操作。
TBatchMove两个特性指明批量移动(Batch Move)操作的源表及目的表。
Source指定一个对应于已有的源数据表的数据集(一个Tquery或Ttable控件),Destination指明对应于一个数据库数据表的Ttable控件,目的数据表可以是已经存在的也可以是不存在的。
Mode特性指明TBatchMove对象所要做的事情: 我们可以根据batCopy模式,对数据库类型进行适当的转换,以下是从dBASE类型到其它类型之间的转换结果: 数据库转换举例 现有用Foxbase开发的财务程序中的会计科目数据库(kjkmk.dbf),系统将升级到Window s环境下开发,数据库将采用Paradox语言。
Delphi导出到Excel例子1
Delphi导出到Excel例子11、建立界面如下:2、数据库内容如下:3、首先在Uses处加上ComObj,Delphi 就一个Button键的代码如下: procedure TForm1.Button1Click(Sender: TObject); var h,k:integer;Excelid: OleVariant;s: string;begintryExcelid := CreateOLEObject('Excel.Application');exceptApplication.MessageBox('Excel没有安装', '提示信息',MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);Exit;end;tryADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('select * from t_cjb');ADOQuery1.Open;k:=ADOQuery1.RecordCount; //表中行记录;Excelid.Visible := True;Excelid.WorkBooks.Add;Excelid.worksheets[1].range['A1:d1'].Merge(True); //A1---D1选中4列.Excelid.WorkSheets[1].Cells[1,1].Value :='课程表';Excelid.worksheets[1].Range['a1:a1'].HorizontalAlignment := $FFFFEFF4; Excelid.worksheets[1].Range['a1:a1'].VerticalAlignment := $FFFFEFF4; Excelid.WorkSheets[1].Cells[2,1].Value := 'cjid';Excelid.WorkSheets[1].Cells[2,2].Value := '考生编号';Excelid.WorkSheets[1].Cells[2,3].Value := '科目名称';Excelid.WorkSheets[1].Cells[2,4].Value := '考试成绩';Excelid.worksheets[1].Range['A1:d1'] := '宋体';Excelid.worksheets[1].Range['A1:d1'].Font.Size := 9;Excelid.worksheets[1].range['A1:d2'].font.bold:=true;Excelid.worksheets[1].Range['A2:d2'].Font.Size := 9;Excelid.worksheets[1].Range['A2:d2'].HorizontalAlignment := $FFFFEFF4; Excelid.worksheets[1].Range['A2:d2'].VerticalAlignment := $FFFFEFF4; h:=3; //从第3行,开始写数据(因为前2行,放标题'课程表',小标题'cjid、考生标号、科目名称、考试成绩')ADOQuery1.First;while not ADOQuery1.Eof dobeginExcelid.WorkSheets[1].Cells[h,1].Value :=Adoquery1.FieldByName('CJID').AsString;Excelid.WorkSheets[1].Cells[h,2].Value :=Adoquery1.FieldByName('KSBH').AsString;Excelid.WorkSheets[1].Cells[h,3].Value :=Adoquery1.FieldByName('KMMC').AsString;Excelid.WorkSheets[1].Cells[h,4].Value :=Adoquery1.FieldByName('KSCJ').AsString; Inc(h);Adoquery1.Next;end;s := 'A2:d'+ IntToStr(k+2); // A2:f9 意思就是excel表格的,A2--到--F9选中,easy.Excelid.worksheets[1].Range[s] := '宋体';Excelid.worksheets[1].Range[s].Font.size := 9;Excelid.worksheets[1].Range[s].Borders.LineStyle := 1;Excelid.Quit;exceptApplication.MessageBox('导入数据出错~请检查文件的格式是否正确~', '提示信息', MB_OK+MB_ICONASTERISK+MB_DEFBUTTON1+MB_APPLMODAL);end;MessageBox(GetActiveWindow(), 'EXCEL数据导出成功', '提示', MB_OK+MB_ICONWARNING);end;4、成功、最终结果如下:。
第二讲Delphi操作数据库基础(下)
在本讲中,我们重点介绍一下BDE和数据库别名的有关知识,这是操作数据库的基础。
要想学习写数据库程序,首先必须对BDE要有所了解。
BDE有一个操作介面供用户在写程序时对数据库进行配置一些信息,安装完毕后在程序组中可以直接找到执行,其执行程序为bdeadmin.exe,运行它会出现如下的介面,见图2-1。
图2-1 BDE运行介面图介面的左半部分有两个选项卡,一个是DataBase,另一个是Configuaration,我们先来介绍Database。
单击Database选项卡,将会列出目前系统中所有的数据库别名。
那么数据库别名是什么呢?数据库别名是初学用Delphi进行数据库编程首先碰到的一个问题。
Delphi中的许多数据库组件都需要指明数据库名称,数据库名称可以直接指定,如C:\DATA\DEMO.MDB,但在代码中可能多处需要使用数据库名称,如果都这样直接使用数据库的绝对路径名称,写起来比较麻烦,但更麻烦的事情在于如果用户改变了数据库的存放路径(如在安装时让用户指定安装目录)或数据库名称,已编写好的程序(EXE文件)将无法正常工作,即使在编程阶段,也要对所有的代码都进行修改,是否太麻烦了,此时我们最好给数据库另取一个名字,这就是别名,此别名代替数据库的真实路径、名称,用户在编程中不必考虑数据库存放在何处,如果数据库的绝对路径或名称修改了,只需修改别名的配置信息即可,用户的程序无需做任何修改。
还有另外一个重要的原因是:在设定数据库别名时,用户需要指明数据库类型,这样Delphi才知道使用什么样的数据库驱动程序。
如果直接用数据库绝对路径和数据库真实名称,在使用时需要在程序中用代码指定数据库类型,这样做实在太麻烦了。
所以,建议还是使用数据库别名。
数据库别名设定和数据库连接。
这里就如何设定数据库别名做详细的介绍。
这也是初学者用Delphi进行数据库编程时比较头疼的一个问题。
许多有关书籍都讲的不详细,即使讲也只是用标准格式(.DBF .DB )做一下示范,对目前流行的Access等数据库没有介绍。
如何在DELPHI中将EXCEL中的数据导入到SQL数据库
vars1:string;beginscreen.Cursor:=crSQLWait;s1:='insert into table_bus '+' (BS_NO,BS_TYPE,bs_whos,bs_mode,bs_seat,bs_soalseat,bs_drseat,bs_oiltype,bs_buycard,bs_un it,BS_BDATE,bs_edate) '+' SELECT 车号,dbo.uf_GetFullNameCode(车型名称),dbo.uf_GetFullNameCode(所属单位),dbo.uf_GetFullNameCode(厂牌型号),核定座位,售票座位,驾驶室前排座位,dbo.uf_GetFullNameCode(燃料名称),购置证号,本外单位,启用日期,dbo.uf_ConvertNullDate(终止时间) '+' FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="'+trim(LabeledEdit1.text)+'";Extended Properties=Excel 8.0;Persist Security Info=False'')...[Sheet1$] '+' where 车号not in(select bs_no from table_bus) ';tryDataModule1.ADOConnection1.Execute(s1);finallyscreen.Cursor:=crArrow;end;end;EXCEL是可以当成一种数据源来处理的。
Str := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + 文件路径+';Extended Properties=Excel 8.0;Persist Security Info=False';然后每列相当于一字段熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。
delphi excel 例程 -回复
delphi excel 例程-回复[Delphi Excel 例程] 创建、操作和导入、导出Excel 文件的示例简介:Delphi 是一种面向对象的编程语言,常被用于开发Windows 平台下的应用程序。
对于许多开发人员来说,数据的导入、导出和处理是非常常见的任务。
在本例程中,我们将学习如何使用Delphi 操作和导入、导出Excel 文件。
下面是一个详细的步骤指南。
第一步:创建一个新的Delphi 项目首先,打开Delphi IDE,然后创建一个新的VCL 应用程序项目。
我们将使用Visual Component Library(VCL)来构建我们的应用程序。
第二步:添加Excel 文件库在Delphi IDE 的主菜单栏中,点击"Component",然后选择"Import Component"。
在对话框中,找到"Microsoft Excel" 组件并选中它,然后点击"OK"。
第三步:设计用户界面在Delphi 的窗体设计器中,设计一个用户界面,以便用户可以选择导入或导出Excel 文件,并进行必要的操作。
第四步:导入Excel 文件在用户界面中,添加一个"导入Excel 文件" 的按钮,并在单击事件中编写以下代码。
pascalusesExcelApp, ExcelWB;procedure TForm1.Button1Click(Sender: TObject);varExcel: _Application; Excel 应用程序对象Workbook: _Workbook; 工作簿对象Worksheet: _Worksheet; 工作表对象begintryExcel := CoExcelApplication.Create; 创建Excel 应用程序对象Workbook :=Excel.Workbooks.Open('C:\path\to\your\excel.xlsx'); 打开Excel 文件Worksheet := Workbook.Worksheets[1]; 获取第一个工作表在这里,你可以通过Worksheet 对象获取和处理Excel 文件的数Workbook.Close(True); 关闭并保存Excel 文件Excel.Quit; 关闭Excel 应用程序finallyWorksheet := nil;Workbook := nil;Excel := nil;end;end;在此代码示例中,我们使用`CoExcelApplication` 类的`Create` 方法创建了一个Excel 应用程序的实例。
DELPHIEXCEL文件导入ACCESS数据库(转载)
DELPHIEXCEL文件导入ACCESS 数据库(转载)delphi2010将excel文件导入access数据库procedure TForm1.Button1Click(Sender: TObject);varsFileName, sTableName: string;sl: TStringList;i,j: integer;beginif not OpenDialog2.Execute then Exit;if not ADOConnection1.Connected then ADOConnection1.Connected:=True; //判断是否连接trysFileName := OpenDialog2.FileName;ADOConnection2.Connected := False; //连接EXCEL 的参数ADOConnection2.ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=' + sFileName + ';Extended Properties="Excel 8.0;IMEX=1";Persist Security Info=False';ADOConnection2.Connected := True; sl := TStringList.Create;ADOConnection2.GetTableNames(sl); //showmessage(inttostr(sl.count));for j:=0 to sl.Count-1 do //sl.Count-1beginsTableName := sl[j];if Pos('_', sTableName) > 0 then continue;if Pos('$', sTableName) > 0 then sTableName := '[' + sTableName + ']';ADOquery2.Close;ADOquery2.SQL.Clear;ADOquery2.SQL.Text := 'SELECT * FROM ' + sTableName;ADOquery2.Open;edit1.Text:='当前IP段:'+sTableName;ADOquery1.Close;ADOquery1.Sql.Text := 'SELECT top 1 * FROM iplib where 1=0';ADOquery1.Open;if ADOquery2.RecordCount > 0 thenbeginADOquery2.First;for i := 1 to ADOquery2.RecordCount do //beginADOquery1.Append;ADOquery1.FieldValues['name']:=ADOquery2.FieldValues['使用人姓名'];ADOquery1.FieldValues['unit']:=ADOquery2.FieldValues['存放地点'];ADOquery1.FieldValues['ip']:=ADOquery2.FieldValues['计算机IP地址'];ADOquery1.Post;ADOquery2.Next;end; //for iend; //ifend; //for jMessageBox(Handle,'导入完成!','完成!',MB_OK+MB_ICONINFORMATION); exceptMessageBox(Handle,'失败!','信息!',MB_OK+MB_ICONINFORMATION);end; //trysl.Free;end;。