Power Builder - Cuantas formas de grabar registros en PB existen ?

 
Vista:

Cuantas formas de grabar registros en PB existen ?

Publicado por Santiago Andres Palacios (24 intervenciones) el 17/10/2009 22:23:11
Hola, soy novato en PB, y estoy realizando prueba en PB, vengo del Mundo VFP. Mi Pregunta es->
Cuantas formas de grabar registros existen en PB ? veo que por el DataWindow,Inser SQL y que otra existe y cual me recomiendan para trabajar Cliente-Servidor ?
Me recomiendan trabajar con el DataWindow? ya que me gusta codificar y hacer los formularios manualmente.
muchas Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cuantas formas de grabar registros en PB existe

Publicado por miguell (153 intervenciones) el 19/10/2009 15:33:51
Hola,

te recomiendo usar siempre que puedas datawindows o datastores. Tiene muchas ventajas a nivel de comunicaciones con la base de datos y no tienes 'inserts updates deletes sueltos' por todo el código. es más fácil de aislar transacciones, etc. etc. Claro que hay excepciones que a veces es más fácil de hacer un insert 'a pelo' desde el código.

miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuantas formas de grabar registros en PB existe

Publicado por Santiago Andres Palacios (24 intervenciones) el 20/10/2009 23:06:58
Gracias miguel por la repuesta: me dirias cual es la diferencia entre el datawindows y el datastore ? estoy probando en PB 10.5. La DB es ASA 9.0-> anda bien esta ?

me podrias mandar los comandos para insertar un registro, borrar, y modificar en datawindow?
para insertar estoy probando asi:
long mrow
mrow=dw_1.insertrow(0)
dw_1.setitem(mrow,'dni',dnicli.text)
dw_1.setitem(mrow,'tipocli',tipocli.text)
dw_1.setitem(mrow,'nombre',nombrecli.text)
dw_1.setitem(mrow,'apellido',apellidocli.text)
dw_1.setitem(mrow,'domicilio',"otror")
dw_1.setitem(mrow,'localidad',"otro")
commit ;
dw_1.update()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuantas formas de grabar registros en PB existe

Publicado por miguell (153 intervenciones) el 21/10/2009 08:29:05
buenos días Santiago,

la diferencia entre un datawindow y datastore es que el datawindow tiene attributos de visibilidad y el datastore no: el objeto datastore no existía en versiones anteriores ( me parece que aparecieron con la versión 3 o 4 de PB) y lo que hacia la gente era usar un control de datawindow en una ventana y ponerlo invisible. Un datastore es un datawindow que existe en memoria y que tiene todo lo que tiene un datawindow "salvo los attributos que tienen que ver con la visibilidad". (creo que se podrá criticar esto, pero es una aproximación de lo que hay).

Si quieres poder depurar, codificar y controlar los eventos de un datastore no te valdrá el datastore así sin más, hazte uno de tipo objeto de usuario (standard, no visual, tipo datastore), salvalo como por ejemplo 'uds_mi_objeto_datastore' y usa ese en vez de un "datastore".

en vez de:
-------------
datastore lds

lds = create datastore
lds.dataobject = 'mi_dw_que_uso_como_datastore'
lds.settransobject(sqlca)

mrow = lds.insertrow(0)
lds.object.columna1[mrow] = .... // lo mismo que lds.setitem(mrow, 'columna1', ...)
lds.update()
commit;
....
.....
destroy lds


puedes hacer:
-------------------
uds_mi_objeto_datastore lds

lds = create uds_mi_objeto_datastore
lds.dataobject = 'mi_dw_que_uso_como_datastore'
lds.settransobject(sqlca)

mrow = lds.insertrow(0)
lds.object.columna1[mrow] = .... // lo mismo que lds.setitem(mrow, 'columna1', ...)
lds.update()
commit;
....
destroy lds

-----------------------------------------------------------------------------------------------------------
Luego, sobre tu código, está bien salvo por las últimas 2 líneas:
primero tienes que hacer el dw_1.update() y después si esto ha ido bien, así:

if dw_1.update() = 1 then
commit
else
rollback;
end if

para borrar:
dw_1.deleterow(0) ....
if dw_1.update() = 1 then
commit
else
rollback;
end if


para actualizar:
dw_1.setitem(..., .... , ...)
// o dejar al usuario que modifique lo que le de la gana
if dw_1.update() = 1 then
commit
else
rollback;
end if

Si pones algo de código en el evento SqlPreview de un control de datawindow, serás capaz de poner una parada en el depurador y puedes ver lo que realmente está pasando a la hora de ejecutar el dw_1.update( ):

por ejemplo mete algo de código:
integer li_i

li_i = 1

pones una parada de depuración sobre li_i = 1 y verás el sql que en realidad se manda a la Base de datos - cuando haces un update( ) - en los argumentos a este evento sqlpreview.

saludos,
Miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuantas formas de grabar registros en PB existe

Publicado por Santiago Andres Palacios (24 intervenciones) el 22/10/2009 01:16:34
Gracias miguel fue de gran ayuda. perdon las molestias.
ahora como hago que un sentencia sql, donde recupero varios registros, los coloque en un datawindow ?
Tendrias un ABM simple de algo hecho para pasarme asi voy viendo el codigo, seria de gran ayuda para mi.
conoces este libro ?
DESCUBRE POWER BUILDER 6
POPOVIC DEJAN
Temas: SIN TEMATIZAR
Editorial: PRENTICE HALL
Tu crees que me sera util , ya que se trata de la version 6 ?
ok Miguel muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuantas formas de grabar registros en PB existe

Publicado por miguell (153 intervenciones) el 22/10/2009 20:38:30
no sé con qué versión de pb estás trabajando pero lo que tienes que hacer es crear un datawindow nuevo:
en pb10: menú 'file', 'new', pestaña 'datawindow',
elegir el tipo de datawindow que quieres crear y después si eliger 'quick select' o 'sql select' te pedirá establecer (de forma gráfica) el sql que quieres que use el datawindow.

sobre lo del libro:
Dejan Popovic ha escrito (traducido?) un libro? no me lo puede creer, trabajé con él en los años '94, '95, '96 en Madrid (a no ser que sea otro Dejan Popovic). Menudo colega era.

pues sí el libro te valdrá aunque esté en la versión 6, pero porqué no usar el link del curso de la versión 7 (hay mucha diferencia en la interfaz (IDE) de la 6 con posteriores versiones y mucho menos con la 7).

te lo pongo de nuevo:
http://powerbuilder.hyderabad-colleges.com/Introduction-to-PowerBuilder-7.html

Ya, ya lo sé ... es en inglés.
si buscas un poco por internet (incluso posiblemente en la página web de sybase www.sybase.com) podrás encontrar cursos en castellano.

Incluso hay un documento de la versión 9 (en castellano) que da una primera impresión en este website:
http://www.lawebdelprogramador.com/cursos/enlace.php?idp=2744&id=73&texto=Power+Builder

Para responder tu pregunta sobre un ejemplo:
Usa las aplicaciones de ejemplo de sybase:
en casi cada versión de powerbuilder puedes instalar al instalar powerbuilder los 'sample applications' (aunque no sé hasta qué versión ofrece esa posibilidad).
También los puedes bajar de aquí:
http://www.sybase.com/detail?id=1058501#533
Allí, busca la cadena '/ powerbuilder / PB Code Samples' y encontrarás aplicaciones de ejemplo desde la versión 3 hasta 9 de powerbuilder.
Tienes que partir del objeto de tipo aplicación, ver qué ventana abre, cuál menú tiene asociado y así podrás ver lo que hacen en la apliación.

aprender 'bien' powerbuilder te costará de un mínimo de un año a dos años. Pero se pueden hacer aplicaciones sencillas con relativamente pocos conocimientos.

Mucha suerte,
Miguel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuantas formas de grabar registros en PB existe

Publicado por miguell (153 intervenciones) el 22/10/2009 20:52:13
qué es un ABM ??

para darte un ejemplo sencillo, me tendrías que decir
- qué versión de powerbuilder estás usando?
- cuál es tu correo electrónico?

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuantas formas de grabar registros en PB existe

Publicado por Santiago Andres Palacios (2 intervenciones) el 22/10/2009 21:19:31
Hola Miguel, gracias por todo. Un ABM es un alta-baja-modificacion. Ya encontre la repuesto por ahi es SetSQLSelect(instruccionSQL). estoy practicando con PB 10.5.
Y yo creo que en 6 meses lo tengo listo a PB. Mira VFP 8 me quedo demasiado chico, casi no me gusta usar wizards, me gusta programar al typeo. Yo creo que con PB me voy a convertir en un "capo cañionieri". Tengo que ver de donde consigo un book porque de lo contrario...
Gracias miguel por todo
mio mail es [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuantas formas de grabar registros en PB existe

Publicado por miguell (153 intervenciones) el 23/10/2009 10:44:00
jaja
bueno Capo,

te envio lo que tengo de documentación a tu correo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar