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