⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 115111.htm

📁 在天极网上发布的各类delphi原码及技巧文档
💻 HTM
📖 第 1 页 / 共 3 页
字号:
  本程序中,将创建一个临时的ODBC系统数据源,指向一个MsAccess数据库,然后对其中的数据表进行显示、增加、修改、删除和查询操作<br>注意:请在Uses语句中包含ComObj单元<br>*****************************************************}<br>const{一些常量声明,详细请参见adovbs.inc}<br>{---- CommandType的常量说明 ----}<br>&nbsp;&nbsp; adCmdUnknown = 0008;//未知,需要系统来判断,速度慢,为缺省值<br>&nbsp;&nbsp; adCmdText = 0001;//命令语句如SQL语句<br>&nbsp;&nbsp; adCmdTable = 0002;//数据表名称<br>&nbsp;&nbsp; adCmdStoredProc = 0004;//存储过程名称<br><br>{---- CursorType的常量说明 ----}<br>&nbsp;&nbsp; adOpenForwardOnly = 0;//只能由前向后单向访问,为缺省值<br>&nbsp;&nbsp; adOpenKeyset = 1;//可见其他用户对数据的修改,但对其它用户的增加和删除不可见<br>&nbsp;&nbsp; adOpenDynamic = 2;//其他用户对数据的增加修改和删除均可见<br>&nbsp;&nbsp; adOpenStatic = 3;//其他用户对数据的增加修改和删除均不可见<br><br>{---- LockType的常量说明 ---}<br>&nbsp;&nbsp; adLockReadOnly = 1;//只读,为缺省值<br>&nbsp;&nbsp; adLockPessimistic = 2;//在修改时,按单个记录锁定<br>&nbsp;&nbsp; adLockOptimistic = 3;//在修改后更新时,按单个记录锁定<br>&nbsp;&nbsp; adLockBatchOptimistic = 4;//在成批更新时记录锁定<br>var<br>&nbsp;&nbsp; AConnection, ARecordSet : variant;<br>&nbsp;&nbsp; longintTemp : integer;<br>&nbsp;&nbsp; strTemp : string;<br>&nbsp;&nbsp; intIndex : integer;<br>begin<br>&nbsp;&nbsp;&nbsp;&nbsp; {创建一个临时的ODBC数据源,指向一个MsAccess数据库,并利用此DSN建立一个数据库连接}<br>&nbsp;&nbsp;&nbsp;&nbsp; AConnection := CreateOleObject(’ADODB.Connection’);<br>&nbsp;&nbsp;&nbsp;&nbsp; AConnection.Open(’Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\inetpub\wwwroot\test’);<br><br>&nbsp;&nbsp;&nbsp;&nbsp; {建立一个数据集对象,并从数据表中提取数据}<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet := CreateOleObject(’ADODB.RecordSet’);<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.open( ’wfjcommu’,AConnection,adOpenStatic,adLockOptimistic,adCmdTable );<br><br>&nbsp;&nbsp;&nbsp;&nbsp; memo1.lines.clear;<br>&nbsp;&nbsp;&nbsp;&nbsp; memo1.lines.add(’********数据表原有的内容如下********’);<br>&nbsp;&nbsp;&nbsp;&nbsp; {显示各个域的域名}<br>&nbsp;&nbsp;&nbsp;&nbsp; strTemp := ’’;<br>&nbsp;&nbsp;&nbsp;&nbsp; for intIndex := 0 to ARecordSet.Fields.count - 1 do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strTemp := strTemp + ARecordSet.Fields[intIndex].name+’;’;<br>&nbsp;&nbsp;&nbsp;&nbsp; memo1.lines.add( strTemp );<br><br>&nbsp;&nbsp;&nbsp;&nbsp; {显示各个域的内容}<br>&nbsp;&nbsp;&nbsp;&nbsp; while not ARecordSet.eof do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp := ’’;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for intIndex := 0 to ARecordSet.Fields.count - 1 do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp := strTemp + ARecordSet.Fields[intIndex].value+’;’;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo1.lines.add( strTemp );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARecordSet.MoveNext;//移到下条,Next<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;<br><br>&nbsp;&nbsp;&nbsp;&nbsp; {增加一个记录}<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.AddNew;//增加,Append<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields[’AName’] := ’1’;//以FieldByName的方式存取<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields[’Portable’] := ’2’;<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields(2) := ’3’;//以Fields[index]的方式存取<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields(3) := ’4’;<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields(4) := ’5’;<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Update;//更新,Post<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.MoveFirst;//移到首条,First<br>&nbsp;&nbsp;&nbsp;&nbsp; memo1.lines.add(’********增加了一条记录后的数据表的内容如下********’);<br>&nbsp;&nbsp;&nbsp;&nbsp; {显示各个域的内容}<br>&nbsp;&nbsp;&nbsp;&nbsp; while not ARecordSet.eof do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp := ’’;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for intIndex := 0 to ARecordSet.Fields.count - 1 do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp := strTemp + ARecordSet.Fields[intIndex].value+’;’;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;memo1.lines.add( strTemp );<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ARecordSet.MoveNext;//移到下条,Next<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end;<br><br>&nbsp;&nbsp;&nbsp;&nbsp; {修改最后一条记录}<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.MoveLast;<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields[’AName’] := ’11’;//以FieldByName的方式存取<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields[’Portable’] := ’22’;<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields(2) := ’33’;//以Fields[index]的方式存取<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields(3) := ’44’;<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Fields(4) := ’55’;<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.Update;//更新,Post<br>&nbsp;&nbsp;&nbsp;&nbsp; ARecordSet.MoveFirst;//移到首条,First<br>&nbsp;&nbsp;&nbsp;&nbsp; memo1.lines.add(’********修改了最后一条记录后的数据表的内容如下********’);<br>&nbsp;&nbsp;&nbsp;&nbsp; {显示各个域的内容}<br>&nbsp;&nbsp;&nbsp;&nbsp; while not ARecordSet.eof do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp := ’’;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for intIndex := 0 to ARecordSet.Fields.count - 1 do<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strTemp 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -