* This script handles the ADO Connection and uses a CursorAdapter object * to retrieve data to a cursor. Public oCA As CursorAdapter Local oConn As ADODB.Connection Local oRS As ADODB.Recordset Local oComm AS ADODB.Command Local oException As Exception Local cConnString * Handle connections - insert connection code cConnString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;"+; "Data Source=D:\Depomatik.sdf" Try oConn = Createobject('ADODB.Connection') * Ensure that you handle userid and password if not * specified in connection string. * ex. oConn.Open(cConnString, userid, password) oConn.Open(cConnString) oComm = Createobject("ADODB.Command") oComm.ActiveConnection = oConn oRS = Createobject("ADODB.Recordset") oRS.Datasource.CursorLocation = 3 &&adUseClient oRS.Datasource.LockType = 3 &&adLockOptimistic oRS.ActiveConnection = oConn oCA=Createobject("CursorAdapter") oCA.DataSourceType = "ADO" oCA.Datasource = oRS oCA.MapBinary = .T. oCA.MapVarchar = .T. oCA.SendUpdates = .T. oCA.KeyFieldList = ??????????????????????????????????? && Put the Key Field list here oCA.WhereType = 1 && Key Fields oCA.Alias = "CARI" oCA.SelectCmd = "SELECT * FROM CARI" oCA.InsertCmdDataSourceType = "ADO" oCA.UpdateCmdDataSourceType = "ADO" oCA.DeleteCmdDataSourceType = "ADO" oCA.RefreshCmdDataSourceType = "ADO" oCA.InsertCmdDataSource = oComm oCA.UpdateCmdDataSource = oComm oCA.DeleteCmdDataSource = oComm oCA.RefreshCmdDataSource = oComm If !oCA.CursorFill(.f.,0,-1,oComm) * Replace with error code here Local laError Dimension laError[1] Aerror(laError) Messagebox(laError[2]) Else * Replace with user code here. Code below allows for * you to edit and send updates to the backend. Local laFlds,lcStr,lnFldCount,i Dimension laFlds[1] lnFldCount=Afields(laFlds) lcStr="" lcStr2 = "" For i = 1 To lnFldCount lcStr = lcStr + laFlds[m.i,1] + "," lcStr2 = lcStr2 + laFlds[m.i,1] + "CARI."+laFlds[m.i,1]+"," Endfor oCA.UpdatableFieldList = LEFT(lcStr , LEN(lcStr )-1) && To remove last comma oCA.UpdateNameList = LEFT(lcStr2, LEN(lcStr2)-1) && To remove last comma BROWSE NORMAL NOWAIT Endif Catch To oException * Replace with exception handling code here Messagebox(oException.Message) Endtry * Add user code here. * Note: cursors created by CursorAdapter object are closed when object is released.Again, that is NOT tested!
>* This script handles the ADO Connection and uses a CursorAdapter object >* to retrieve data to a cursor. > >Public oCA As CursorAdapter >Local oConn As ADODB.Connection >Local oRS As ADODB.Recordset >Local oException As Exception >Local cConnString > >* Handle connections - insert connection code >cConnString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;"+; > "Data Source=D:\Depomatik.sdf" >Try > oConn = Createobject('ADODB.Connection') > > * Ensure that you handle userid and password if not > * specified in connection string. > * ex. oConn.Open(cConnString, userid, password) > oConn.Open(cConnString) > > oRS = Createobject("ADODB.Recordset") > oRS.Datasource.CursorLocation = 3 &&adUseClient > oRS.Datasource.LockType = 3 &&adLockOptimistic > oRS.ActiveConnection = oConn > > oCA=Createobject("CursorAdapter") > oCA.DataSourceType = "ADO" > oCA.Datasource = oRS > oCA.MapBinary = .T. > oCA.MapVarchar = .T. > > oCA.Alias = "CARI" > oCA.SelectCmd = "SELECT * FROM CARI" > oCA.UpdateCmd = "" > oCA.InsertCmd = "" > oCA.DeleteCmd = "" > > If !oCA.CursorFill() > * Replace with error code here > Local laError > Dimension laError[1] > Aerror(laError) > Messagebox(laError[2]) > Else > * Replace with user code here. Code below allows for > * you to edit and send updates to the backend. > Local laFlds,lcStr,lnFldCount,i > Dimension laFlds[1] > lnFldCount=Afields(laFlds) > lcStr="" > For i = 1 To lnFldCount > lcStr = lcStr + laFlds[m.i,1] + "," > Endfor > oCA.UpdatableFieldList = lcStr > BROWSE NORMAL NOWAIT > Endif > >Catch To oException > * Replace with exception handling code here > Messagebox(oException.Message) >Endtry > >* Add user code here. >* Note: cursors created by CursorAdapter object are closed when object is released. >