Luis Buen d铆a
Esta es la forma como yo hago las consultas:
Primero que todo hay que crear el recorset. (bueno si tienes creadas las tablas que vas a usar)
oVar 聽 := "SELECT * from "+oLamcla:tBode+" ORDER BY "+alltrim(oLamcla:vOrden)
TRY
聽 oLamcla:oRsBodega:=tOleAuto():New("ADODB.RecordSet")
CATCH oError
聽 MsgStop( "No se ha podido crear el RECORDSET !","Error de Datos" )
END
oLamcla:oRsBodega:CursorLocation 聽:= adUseClient //adUseServer
oLamcla:oRsBodega:LockType 聽 聽 聽 聽:= adLockOptimistic
oLamcla:oRsBodega:CursorType 聽 聽 聽:= adOpenKeyset
oLamcla:oRsBodega:Source 聽 聽 聽 聽 聽:= oVar
oLamcla:oRsBodega:ActiveConnection( oLamcla:oServer )
TRY
聽 oLamcla:oRsBodega:Open()
CATCH oError
聽 MsgStop( "No se ha podido ejecutar el comando !", "Error de Datos" )
END
Luego esta es una de las formas de hacer altas, bajas y modificaciones, se trabaja sobre el recorset y este se encarga de actualizar la tabla.
************************************
*Graba los datos en la base de datos
************************************
PROC pGrabBod()
uFec:=date()
uTim:=subs(time(),1,8)
uCou:=alltrim(oLamcla:vCous)
IF oLamcla:vgraba=.t.
聽 oLamcla:oRsBodega:Addnew()
聽 oLamcla:oRsBodega:Fields("b_bodega"):value := alltrim(oB2vg1)
聽 oLamcla:oRsBodega:Fields("b_nombre"):value := alltrim(oB2vg2)
聽 oLamcla:oRsBodega:Fields("b_direcc"):value := alltrim(oB2vg3)
聽 oLamcla:oRsBodega:Fields("b_telefo"):value := alltrim(oB2vg4)
聽 oLamcla:oRsBodega:Fields("umovim"):value := 0
聽 oLamcla:oRsBodega:Fields("usuari"):value := uCou
聽 oLamcla:oRsBodega:Fields("ufecha"):value := uFec
聽 oLamcla:oRsBodega:Fields("uhoras"):value := uTim
聽 oLamcla:oRsBodega:Update()
ELSE
聽 oLamcla:oRsBodega:Fields("b_bodega"):value := alltrim(oB2vg1)
聽 oLamcla:oRsBodega:Fields("b_nombre"):value := alltrim(oB2vg2)
聽 oLamcla:oRsBodega:Fields("b_direcc"):value := alltrim(oB2vg3)
聽 oLamcla:oRsBodega:Fields("b_telefo"):value := alltrim(oB2vg4)
聽 oLamcla:oRsBodega:Fields("usuari"):value := uCou
聽 oLamcla:oRsBodega:Fields("ufecha"):value := uFec
聽 oLamcla:oRsBodega:Fields("uhoras"):value := uTim
聽 oLamcla:oRsBodega:Update()
ENDIF
oLamcla:oRsBodega:Requery()
oLamcla:oBrwBode:Refresh()
oCuadr1:end()
Para eliminar
****************
*Borrar Registro
****************
PROC pBorrBod()
nRegistros := oLamcla:oRsBodega:RecordCount()
IF nRegistros#0
聽 oM2vg1:=oLamcla:oRsBodega:Fields("b_bodega"):Value
聽 oM2vg2:=oLamcla:oRsBodega:Fields("b_nombre"):Value
聽 IF MSGNOYES("Confirma Eliminar Bodega"+CRLF+;
聽 聽 聽 聽 聽 聽 聽 "C贸digo:->"+alltrim(oM2vg1)+CRLF+;
聽 聽 聽 聽 聽 "Nombre:->"+alltrim(oM2vg2),oLamcla:mCoto)
聽 聽 oLamcla:oRsBodega:Delete()
聽 聽 oLamcla:oRsBodega:Requery()
聽 聽 oLamcla:oBrwBode:Refresh()
聽 ENDIF
ENDIF
Otra forma de hacerlo es la siguiente:
Agregar
聽 vConsCB:="INSERT INTO "+oLamcla:tBarr+" (ii_articu,ii_nombre,ii_codbar,ii_madres,ii_tallas,ii_colore,umovim,usuari,ufecha,uhoras) VALUES ('"+;
聽 聽 聽 聽 聽 聽alltrim(oA1vg1)+"','"+alltrim(oA1vg2)+"','','1','','',0,'"+uCou+"','"+uFe2+"','"+uTim+"')"
聽 TRY
聽 聽 oLamcla:oServer:Execute(vConsCB)
聽 CATCH oError
聽 聽 MsgInfo(oLamcla:mRegi,oLamcla:mDato)
聽 END
Modificar
聽 vConsCB:="UPDATE "+oLamcla:tBarr+" SET ii_nombre='"+;
聽 聽 聽 聽 聽 聽alltrim(oA1vg2)+"',usuari='"+uCou+"',ufecha='"+uFe2+"',uhoras='"+uTim+"' WHERE ii_articu='"+alltrim(oA1vg1)+"'"
聽 TRY
聽 聽 oLamcla:oServer:Execute(vConsCB)
聽 CATCH oError
聽 聽 MsgInfo(oLamcla:mRegi,oLamcla:mDato)
聽 END
Eliminar
聽 聽 vConsCB:="DELETE FROM "+oLamcla:tBarr+" WHERE ii_articu='"+alltrim(oM2vg1)+"'"
聽 聽 TRY
聽 聽 聽 oLamcla:oServer:Execute(vConsCB)
聽 聽 CATCH oError
聽 聽 聽 MsgInfo(oLamcla:mRegi,oLamcla:mDato)
聽 聽 END
Seleccionar una base de datos
cCommandSql := "USE "+oLamcla:nDBdat
TRY
oCon:Execute(cCommandSql)
CATCH oError
MsgInfo("No pude activar la base de datos")
END
Para crear las tablas
vQuery := "CREATE TABLE IF NOT EXISTS "+oLamcla:tEmpr+" "
vQuery += "("
vQuery += "e_codi VARCHAR(2) NOT NULL ,"
vQuery += "e_nomb VARCHAR(50) NOT NULL ,"
vQuery += "e_nits VARCHAR(15) NOT NULL ,"
vQuery += "e_digi VARCHAR(2) NULL ,"
vQuery += "e_gere VARCHAR(40) NULL ,"
vQuery += "e_domi VARCHAR(40) NULL ,"
vQuery += "e_dire VARCHAR(50) NULL ,"
vQuery += "e_tele VARCHAR(20) NULL ,"
vQuery += "e_faxs VARCHAR(20) NULL ,"
vQuery += "e_host VARCHAR(50) NOT NULL ,"
vQuery += "e_hore VARCHAR(50) NOT NULL ,"
vQuery += "e_usua VARCHAR(20) NOT NULL ,"
vQuery += "e_pass VARCHAR(20) NOT NULL ,"
vQuery += "e_daba VARCHAR(20) NOT NULL ,"
vQuery += "e_prto VARCHAR(10) NOT NULL ,"
vQuery += "e_anos VARCHAR(99) NOT NULL ,"
vQuery += "e_nota VARCHAR(99) NULL ,"
vQuery += "e_fech DATE NULL ,"
vQuery += " PRIMARY KEY (e_codi)"
vQuery += ") "
vQuery += " TYPE = MYISAM;"
TRY
oCon:Execute(vQuery)
CATCH oError
MsgInfo("La tabla "+oLamcla:tEmpr+" NO pudo ser creada")
END
Espero te sea de ayuda