OPEN Method -- DLL THIS.lcConnection = "" this.oConnection = CREATEOBJECT("adodb.connection") this.oConnection.OPEN( "DRIVER={SQL Server};" + ; "Server=localhost;"+ ; "DATABASE=jbempresas;"+ ; "UID=;" + ; "PASSWORD=;") THIS.lcConnection = this.oConnection GetRS -- DLL LPARAMETERS lcChv1, lcTable oRecordSet=CREATEOBJECT('adodb.recordset') With oRecordSet .ActiveConnection = This.lcConnection &&oConnection .CursorLocation = 3 && adUseClient .CursorType = 2 && adDynamic .LockType = 4 && adLockBatchOptimistic .Open("SELECT * FROM &lcTable where c_codigo= '"+lcChv1+"'",This.lcConnection) if .RecordCount<=0 .AddNew oRecordSet.fields('c_RecordSet').value="0" ELSE oRecordSet.fields('c_RecordSet').value="1" endif endwith RETURN oRecordSet SAVE Method -- DLL LPARAMETERS toRS WITH toRS .oConnection.BeginTrans() toRS=ActiveConnection=.oConnection toRS.UpdateBatch ENDWITH FORM Code LOAD FORM WITH THIS .oConnect = createobject('gc_DataLayer.DataLayer') .oRs = createobject('ADODB.RecordSet') ENDWITH ADDREC Form This.oConnect.Save(oRS)The form get some values, the form fields are bound like .ORS.fields('c_codigo').value and ....