ADO + FWH + DBF + SQL

Post Reply
akeyser
Posts: 3
Joined: Mon Oct 10, 2005 7:05 pm
Location: Argentina

ADO + FWH + DBF + SQL

Post 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
User avatar
sjingo
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Post 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
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post 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.
Saludos
R.F.
akeyser
Posts: 3
Joined: Mon Oct 10, 2005 7:05 pm
Location: Argentina

ADO + FWH + DBF + SQL II

Post by akeyser »

Gracias por la ayuda, me podrían decir como veo los metodos y propiedades para trabajar con ADO en FHW?,

Gracias.

Ariel,
User avatar
sjingo
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Post by sjingo »

El siguiente link puede serte de gran ayuda

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


Un saludo

Marcelo Jingo
Rochinha
Posts: 309
Joined: Sun Jan 08, 2006 10:09 pm
Location: Brasil - Sao Paulo
Contact:

Post by Rochinha »

Amiguinho

Ustedes podes visualizar en:

SunChilliSoft.ASP

És mui simples usar ADO con Fivewin.
Post Reply