Sei sulla pagina 1di 6

TutoGambas #4: Manejo de Registros en una base ...

http://willicab.gnu.org.ve/tutogambas-4-manejo-de-...

Elportaldewillicab

TutoGambas#4:ManejodeRegistrosenuna basededatos(Crear,Buscar,Modificary Eliminar)


Publicadoelagosto31,2010 peroquebuenovale,alagentelegustaloqueescriboyesomemotivaaseguircreandoestos minitutoriales,asqueahoravieneelmanejodelasfuncionesmsbsicasenunaBasededatos. Transacciones CuandoHablamosdeunatransaccinenunabasededatosnosreferimosaunaseriedecambios que,otodastienenexitootodasfracasan,porejemplo,siestamosintentandocambiarunregistro, peroenalgunonocoindidenlostipos,entoncestodoelprocesosetienequerevertirynose guardanada. CrearRegistros Loprimeroquehacemosesiniciarlatransaccincon $hConn.Begin LuegocreamosunobjetoResultconelmtodoCreate hRes=$hConn.Create("tabla") Estonoscreaunregistrovaciodondevamosaestablecerlosdatosdelregistro:

1 de 6

16/07/11 08:37

TutoGambas #4: Manejo de Registros en una base ...

http://willicab.gnu.org.ve/tutogambas-4-manejo-de-...

hRes!campo1="Registro#1" hRes!campo2=300 hRes!campo3=Date(Now()) hRes!campo4=TRUE hRes!campo5=2235644.232 ElobjetoResulttambinpuedeusarsecomounArrayparaguardarlosdatos,seraalgocomo esto: hRes["campo1"]="Registro#1" hRes["campo2"]=Rnd(200,20000) hRes["campo3"]=Date(Now()) hRes["campo4"]=TRUE hRes["campo5"]=2235644.232 Unaventajaalhacerlodeestamaneraesquepodemosporejemplousarvariablesenlugarde cadenas,pudiendopotimizarmaselcdigo,laopcionessonvariadas. Luegoseactualizaelregistro,paraguardarestosdatos: hRes.Update Conestonosaseguramosdequeingresenlosdatosalregistro,finalmentecerramoslatransaccin: $hConn.Commit Encasodeerrorechamostodoelprocesoparaatras: CATCH $hConn.Rollback Podemosverelcdigocompletoac:

2 de 6

16/07/11 08:37

TutoGambas #4: Manejo de Registros en una base ...

http://willicab.gnu.org.ve/tutogambas-4-manejo-de-...

DIMhResasResult $hConn.Begin hRes=$hConn.Create("tabla") hRes!campo1="Registro#1" hRes!campo2=Rnd(200,20000) hRes!campo3=Date(Now()) hRes!campo4=TRUE hRes!campo5=2235644.232 hRes.Update $hConn.Commit CATCH $hConn.Rollback BuscarRegistros ParabuscarunregistropodemosusarelmtodoFinddelobjetoCollection: hRes=$hconn.Find("tabla")'EstoesequivalenteaSELECT*FROMtabla EstocreaunobjetoResultdesololecturaquenosguardar,enestecasobuscamostodoslos datosqueestnguardadosenlatabla,podemosfiltrarconlaclausulawheredeestamanera:

hRes=$hconn.Find("tabla","campo2<10000")'EstoesequivalenteaSELECT*FROMtablaWHEREcampo2& Conestatendremoscomoresultadotodoslosregistroscuyovalorparacampo2seamenora 10000. Solonosquedaenumerarlasalida FOREACHhRes PRINThRes!campo1 PRINThRes!campo2 PRINThRes!campo3 PRINThRes!campo4 PRINThRes!campo5 NEXT Alfinalelcdigonosquedaas:

3 de 6

16/07/11 08:37

TutoGambas #4: Manejo de Registros en una base ...

http://willicab.gnu.org.ve/tutogambas-4-manejo-de-...

DIMhResASResult hRes=$hconn.Find("tabla","campo2<10000") FOREACHhRes PRINThRes!campo1 PRINThRes!campo2 PRINThRes!campo3 PRINThRes!campo4 PRINThRes!campo5 NEXT EditarunRegistro Loprimeroquedebemoshaceresiniciarunatransaccin $hconn.Begin LuegocreamosunobjetoResultdelecturayescriturausandolafuncinEditdelaclase Connection,aligualquelafuncinFindusaremoscomoprimerparametroelnombredelatablay comosegundoparametrolaclausulawhereparaobtenerresultadosmasprecisos. hRes=$hconn.Edit("tabla","campo2<10000") Enestecasobuscartodoslosregistroscuyovalordecampo2seamenora10000,generalmente sebuscaeditarunsoloregistro,paraestobuscamosporejemploelcampoqueseaclaveprimaria queennuestroejemploesid. Ahoraeditamosloscampos. FOREACHhRes hRes!campo1="Campoconvalormenora10000" hRes.Update NEXT Enestecasoiremosregistroporregistroeditandocampo1,esimportantequeluegosecoloquela lineahRes.Updateparaguardarlosregistros,sisolovanaeditarunregistrononecesitarusarel FOREACH. Otracuestinquehayqueacotaressobreellimitequelecolocamosaloscampos,sirecordamos enelTutoGambas#2habamoscreadocampo2comouncampodetipostringyunalongitudde16 caracteresperoenlaedicincolocamosunacadenade29,nonosdarerrorperosivemosel resultadosolonosguardarCampoconvalor.

4 de 6

16/07/11 08:37

TutoGambas #4: Manejo de Registros en una base ...

http://willicab.gnu.org.ve/tutogambas-4-manejo-de-...

Finalizamoscerrandolatransaccin. $hconn.Commit Odevolviendolasihaocurridounerror. CATCH $hconn.Rollback Elcdigocompletoseveraas. DIMhResASResult $hconn.Begin hRes=$hconn.Edit("tabla","campo2<10000") FOREACHhRes hRes!campo1="Campoconvalormenora10000" hRes.Update NEXT $hconn.Commit CATCH $hconn.Rollback ElmtodoExec Sialgunodemtodosanterioressequedacortosiemprepodemoscrearnuestraspropias sentenciasSQLusandoelelmetodoExec hRes=hConn.Exec("TusentenciaSQL") EstemtodosiemprevaadevolverunobjetoResultaunquenosernecesarioentodosloscasos.

ShareandEnjoy:

T ALVEZ T EINT ERESE:

TutoGambas#2:BasesdedatosconGambas,creacindetablasycampos TutoGambas#1:BasesdedatosconGambas,ConexinyCreacindebasesdedatos TutoGambas#3:Abrirfirefoxdesdegambas(ocomomanejarcomandosexternos) gbReport1.0 gbReport0.1.20

5 de 6

16/07/11 08:37

TutoGambas #4: Manejo de Registros en una base ...

http://willicab.gnu.org.ve/tutogambas-4-manejo-de-...

EstaentradafuepublicadaenTutoGambasyetiquetadaBasesdeDatos,Gambasporwillicab. Guardaenlacepermanente[http://willicab.gnu.org.ve/tutogambas-4-manejo-de-registrosen-una-base-de-datos-crear-buscar-modificar-y-eliminar/].
UNPENSAMIENTOENTUTOGAMBAS#4:MANEJODEREGISTROSENUNABASEDEDATOS(CREAR,BUSCAR,MODIFICARY ELIMINAR)

yaniraaguero enoctubre28,2010en11:40pmdijo:

estosregistrosdebemostenerinstaladoMSQLyqueotro programaparaquemefuncionebientambienmefalta codigoparalosscripylosllamadosalertsipuedes asesorameteloagradescotuestasaportandocasasmuy buenasparalacomunidadganba

6 de 6

16/07/11 08:37

Potrebbero piacerti anche