Page 1 of 1

ADO + FWH + DBF + SQL

Posted: Wed Nov 08, 2006 7:17 am
by akeyser
Buenas a todos,

1) De donde puedo sacar información de las propiedades y metodos de ADO??

2) Quisiera saber que estoy haciendo mal en este código. El Browse con el primer recordset me lo muestra de maravilla, ahora cuando quiero insertar en la tabla F10TAA.DBF el contenido de F10T01 (Las dos son iguales) me da el siguiente error.

Error occurred at: 11/08/06, 04:14:32
Error description: Error ADODB.RecordSet/14 DISP_E_BADPARAMCOUNT: EXECUTE
Args:

Stack Calls
===========
Called from: win32ole.prg => TOLEAUTO:EXECUTE(0)
Called from: TestAdo.prg => MAIN(105)

El código más abajo.


FUNCTION MAIN()

LOCAL oRs, oRs1, cConn , cConn1 , oErr ,cSQL, cSQL1, cSQL_select, cSQL_from, cSQL_where, cSQL_order

cSQL_select = "select F10T01.CODINTPRD, F10T01.NOMPRD, F10T01.PRCSUG, F10T01.CODRUB, F10G02.NOMRUB, F10T01.CODBAR "
cSQL_from = "from F10T01, F10G02 "
cSQL_where = "where F10T01.CODRUB = F10G02.CODRUB and F10T01.CODBAR = '8888888888888'"
cSQL_order = "order by F10T01.NOMPRD"

cSQL = cSQL_select + cSQL_from + cSQL_where + cSQL_order

oRs := CreateObject("ADODB.RecordSet")
oRs:CursorLocation := adUseClient
oRs:LockType := adLockOptimistic
oRs:CursorType := adOpenDynamic
oRs:ActiveConnection := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\ft\apl;Extended Properties=dBASE IV"
oRs:Source := cSQL

TRY
oRs:Open()
oRs:MoveFirst()

CATCH oErr
? oErr:Description
RETURN NIL
END TRY

// Funciona OK!!!!

TCBROWSERECORDSET( oRs )

oRs:Close()

oRs := CreateObject("ADODB.RecordSet")
oRs:CursorLocation := adUseClient
oRs:LockType := adLockOptimistic
oRs:CursorType := adOpenDynamic
oRs:ActiveConnection := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\ft\apl;Extended Properties=dBASE IV"
oRs:Source := cSQL1

// Aquí es donde da el error

cSQL1 = "insert into F10TAA ( CODINTPRD, NOMPRD, PRCVTA, PRCSUG, CODBAR ) select CODINTPRD, NOMPRD, PRCVTA, PRCSUG, CODBAR from F10T01 where CODBAR = '8888888888888'"

oRs:Open()
oRs:Update()


oRs:Close()

RETURN NIL

---------------------------------------------------------------------------------

Muchas Gracias a todos,

Ariel S Gigliotti

Posted: Fri Nov 10, 2006 3:01 am
by sjingo
Ariel

Me invadió la duda.... pero prueba a colocar la declaración de la consulta cSQL1 antes de asignarle a
oRs:Source


cSQL1 = "insert into F10TAA ( CODINTPRD, NOMPRD, PRCVTA, PRCSUG, CODBAR ) select CODINTPRD, NOMPRD, PRCVTA, PRCSUG, CODBAR from F10T01 where CODBAR = '8888888888888'"

oRs:Source := cSQL1



Puedes enontrar más información de los objetos ADO en


http://msdn.microsoft.com/library/defau ... jfield.asp


Marcelo Jingo

Posted: Fri Nov 10, 2006 5:53 am
by R.F.
Segun mi conocimiento de ADO no deberias de modificar o insertar datos usando un query, ADO tiene metodos para hacer eso directamente.

Si quieres por ejemplo modificar un dato del record set haces:

oRs:field(x):Value := lo que quieras
oRs:Update()

si haces un query que inserte datos en una tabla o que los modfique el resultado de la ejecucion de dicho query, sobre un recordset, lo que este recordset te devuelve NO ES LA TABLA CON EL REGISTRO ACTUALIZADO O MODIFICADO, el recorset regresa el resultado de la operacion realizada, puede ser un valor numerico, o un valor logico, pero nunca regresa una tabla.

ADO + FWH + DBF + SQL II

Posted: Sat Nov 11, 2006 12:01 am
by akeyser
Gracias por la ayuda, me podrían decir como veo los metodos y propiedades para trabajar con ADO en FHW?,

Gracias.

Ariel,

Posted: Sat Nov 11, 2006 8:19 pm
by sjingo
El siguiente link puede serte de gran ayuda

http://www.aspfacil.com/articulos/040401.asp


Un saludo

Marcelo Jingo

Posted: Wed Nov 15, 2006 11:11 pm
by Rochinha
Amiguinho

Ustedes podes visualizar en:

SunChilliSoft.ASP

És mui simples usar ADO con Fivewin.