PREGUNTAS CONTESTADAS - Power Builder

 Hay un total de 432 Preguntas.<<  >> 

    Pregunta:  48308 - AGREGAR NUEVOS REGISTROS
Autor:  Ana Díaz
Hola!! Soy novata en este lenguaje y a la hora de hacer listados, busquedas.. me apaño bastante bien :D , el problema que tengo es a la hora de añadir un nuevo registro en una tabla.
En el evento open de la aplicacion defino los parámetros :

SQLCA.DBMS = "ODBC"
SQLCA.Database = "<nombre de la db>"
SQLCA.AutoCommit = False
SQLCA.DBParm= "ConnectString='DSN=<nombre de la db>"
Connect Using sqlca;

El problema viene cuando añado un datawindow para insertar los nuevos registros en la tabla a la ventana. Por ejemplo, en el evento open de la ventana creo la conexión:

dw_1.SettransObject(sqlca)

Pero claro, no pongo:

dw_1.retrieve()

Por que si no me devuelve la primera fila de la tabla y lo quiero es poder añadir un registro nuevo, y si no pongo esa linea no me aparece el datawindow. Estoy bastante perdida..

Gracias de antemano!!
  Respuesta:  Oxido social
Que tal Ana!

Mira bien sencillo:

dw.SetTransObject (SQLCA): Sirve para conectar tu Dw con la BD.
dw.Retrieve () Trae la informacion de la consulta que esta en el datawindowobject

dw.InsertRow (0): Inserta un renglo en limpio en tu DW
dw.DeleteRow (Row): Borra del DW el senglon especifico en la variable ROW.

dw.Update (): Hace el UPDATE del DW sobre la tabla.

El INSERTROW y DELETEROW no realizan los cambios en la tabla, es en tu aplicacion nada mas, para que lo tengas encuenta.

Aqui te dejo un codigo para que implementes en tus aplicaciones:

/**********************************
OPen de la ventana
**********************************/
dw.SetTransObject (SQLCA)
dw.SetRowFocusIndicator (Hand!)
/***************************************
Evento CLOSEQUERY
***************************************/
dw.AcceptText ()
IF (dw.ModifiedCount () > 0) OR (dw.DeletedCount () > 0) THEN
CHOOSE CASE MessageBox ('aviso', 'Hay cambios realizados sin guardar. ' + char (13) + '¿Desea guardar ahora?', Question!, YesNoCancel!)
CASE 1
IF (dw.Update () = 1) THEN
MessageBox ('aviso', 'Se guardo con exito')
RETURN 0
ELSE
MessageBox ('aviso', 'Ocurrio un error al guardar')
RETURN 1
END IF
CASE 2
RETURN 0
CASE 3
RETURN 1
END CHOOSE
END IF

/***************************************
Boton para agregar un registro
***************************************/
LONG ll_Ren

ll_Ren = dw.InsertRow (0)
dw.ScrollToRow (ll_ren)
dw.SetFocus ()
dw.SetColumn ('Id')

/***************************************
Boton para eliminar un registro
***************************************/
LONG ll_Ren
ll_Ren = dw.GetRow ()
IF (ll_Ren > 0) THEN
IF (MessageBox ('Aviso', '¿Quiere eliminar el registro seleccionado?', Question!, YesNo!) = 2) THEN
RETURN
END IF
dw.DeleteRow (ll_Ren)
ELSE
MessageBox ('Aviso', 'No hay registros a eliminar.');
END IF

/***************************************
Boton para guardar un registro
***************************************/
dw.AcceptText ()
IF (dw.ModifiedCount () > 0) OR (dw.DeletedCount () > 0) THEN
IF (dw.Update () = 1) THEN
MessageBox ('aviso', 'Se guardo con exito')
ELSE
MessageBox ('aviso', 'Ocurrio un error al guardar')
END IF
END IF


Espero te sirva de algo esta breve explicacion.

Saludos desde Guadalajara, Mexico.

    Pregunta:  48527 - COMO HACER PROCEDIMIENTOS ALMACENADOS CON LA MISMA BD DE PB
Autor:  Jorge Alvarez
Agradeceria bastante alguien q me diga como puedo hacer procedimientos almacenados en la misma base de datos de sybase--gracias de antemano :P
  Respuesta:  Leopoldo Taylhardat
Saludos... no sé si estoy a tiempo para una respuesta ya que esta sección no te refleja fechas de preguntas y nunca había entrado en esta sección...
Para hacer procedimientos tienes tres opciones:
si son procedimientos permanentes
a.- creas el procedimiento a través del sybase central y administras la BD directamente, hay tienes un administrador y un wizard que te muestra una estructura base de la función o procedure o con un template (tu tienes que escribirlo casi todo)....
b.- creas el procedimiento a través del Interactive SQL que armas la instrucción completa del procedure o función..
CREATE PROCEDURE "dba"."a"
/* ( @parameter_name datatype [= default] [output], ... ) */
AS
BEGIN

END
...
CREATE FUNCTION [creator.]"func_name" ( /* parameters,... */ )
RETURNS /* return type */
BEGIN
DECLARE /*return name */ /* return type */;
RETURN (/* return name */);
END

Nota: debes darle permisología al (a los) usuario(s) que puedan utilizar el procedure o función...Ver Administración de Sybase

Si no es permanente...en PB
c- creas un procedure en un evento de PB
DECLARE aaa PROCEDURE FOR xxx
@par_1 = a,
@par_2 = b,
@database_id = c ; etc....
y luego lo ejecutas con la instrucción EXECUTE.

Lee la documentación de PB...

Saludos desde Maracay, Venezuela y Feliz Año 2007.

    Pregunta:  48544 - IMAGENES A UNA BASE MEDIANTE OLE SIN EL NOMBRE DE LA IMAGEN
Autor:  ANDREA JAQUELINE PADILLA FREIRE
Hola saludos, necesito ayuda. Estos trabajando power 7.0 y necesito capturar una foto en un objeto Ole para luego grabar en mi base de datos. El problema es que cuando tomo la imagen bmp y le mando a insertar en mi objeto ole obtengo como resultado la imagen pero incluido el nombre del archivo con su extension. Necesito saber que debo hacer para que se me insctruste solo la imagen.
Desde ya agradezco su ayuda
  Respuesta:  JUAN OSWALDO VILLAZON LUNA
Mira amigo te recomierdo que ingreses a la aplicacion ejemplo de powerbuilder, ya que alli existe un ejemplo sobre lo que tu deseas.

Esperando te sirva mi aporte me despido

    Pregunta:  48577 - ERROR EN LIBRERIAS ( POWER BUILDER 8 )
Autor:  Javier Aquino
Holas .. espero me puedan ayudar.

Resulta que de un momento a otro no puedo visualizar las librerías en PB 8.

Estoy usando Windows XP y Power Builder 8.0.

Lo único que hice es regenerar las librerías y despues de eso cuando le doy clic en abrir aparece el target pero no muestra ninguna librería.

Alguien puede ayudarme con algun tip, consejo o ya de plano el por que suceden estas cosas?

Gracias de antemano
  Respuesta:  oxidosocial
Mira eso mismo me paso a mi al migrar una aplicacion de power 7 a 10. La solucion fue crear un workspace y un target e irles agregando libreria por libreria. Cada que agregues una libreria migra tu aplicacion.

Si alguna de las librerias no se puede migrar (por la razon que sea) y no quedan en la version a la que quieres transportarla las demas librerias siguientes tampoco se visualizan. Como que PB 8 se protege para no abrir liberias no migradas.

Espero haber sido de ayuda,

Saludos.

    Pregunta:  48700 - GRABAR CD DESDE POWER BUILDER
Autor:  Rhoddy Quiroga
Tengo que grabar varias imagenes en un CD desde una aplicacion PW 7, las imagenes las puede juntar en una carpeta del PC sin problemas, pero alguien sabe como controlar el grabador desde la aplicacion.
  Respuesta:  Moises Orellana
la unica forma que veo es mediante librerias ocx
no veo otra forma busca librerias en google algunas son de pago otra shareware.
atte
Moises O.

    Pregunta:  48757 - LíMITE DE REGISTROS
Autor:  Juan Israel Córdova Manjarrez
Ayuda, necesito saber cuál es la capacidad de almacenamiento en registros de SQL Anywhere 9.0.
  Respuesta:  Leopoldo Taylhardat [email protected]
Teóricamente la capacidad del disco...
Aunque puedes crear extensiones de la base de datos (DB Spaces) en otro disco, pero tienes que reorganizar la BD en ese caso como por ejemplo cuales tablas van en la extensión....
Espero que te sirva...

    Pregunta:  48814 - COMO ACTUALIZAR UNA DATA WINDOWS REMOTA DESDE OTRO LUGAR
Autor:  Rodrigo Hernández
Hola
Tengo la siguiente situación, a partir de una aplicación en PB, que se actualiza en un lugar determinado, parte de esta aplicación esta mostrando datos en otro lugar, obvamente ejecuta retrieve, pero necesito que refresque datos, solo cuando se ha ejecutado un cambio en la primera aplicación ( otro lugar fisico ).
Como hacer para que desde la aplicación uno, indique a la aplicación dos que debe mostrar datos nuevos.
Agradecido
  Respuesta:  Gabriel Manilla
PUES MIRA LA CUESTION ES ALGO POCO DIFICIL O TALVEZ MUY COMPLICADA LO QUE PODRIAS HACER ES QUE SI LO QUE QUIERES ES QUE SE EJECUTE EL RETRIEVE DE UN DW DETERMINADO NUMERO DE VECES O EN ALGUNAS OCACIONES DEPENDIENDO DE LO QUE HAGA POR EJEMPLO EL VENDEDOR EN LA TIENDA Y TU CHECAR ESA VENTA EN TU CASA PUES MANDALO CHECAR CON UN TIMER EN LA APLICACION PADRE Y QUE ESTE CHEQUE UN CAMPO EN LA TABLA Y SI EXISTE ALGUNA BANDERA QUE MODIFIQUE LA APLICACION HIJO (VENDEDOR) O EL PROCESO DE VENTA PUES ESTE ASIMILA QUE TENDRA QUE HACER EL RETRIEVE Y NO LO HARA CADA QUE SE LE OCURRA, SOLO CUANDO SE VENDA ALGO YA QUE EL HIJO MODIFICARA LA VANDERA YA SEA A 1 Y EL PADRE LA RESTABLECERA A CERO PORUQ REALIZO EL RETRIEVE.

ESPERO ME EXPLIQUE BIEN Y ME ENTIENDAS.

A LA COMUNIDAD DE PROGRAMADORES NO SOLO DE PROGRAMACION ESTAN HECHOS LOS SISTEMAS; SI NO DE NUESTRO INGENIO PARA HACERLO

    Pregunta:  48981 - ELIMINACION DE REGISTROS SELECCIONADOS EN UN DATAWINDOW
Autor:  JUAN OSWALDO VILLAZON LUNA
Tengo el siguiente problemita, tengo un datawindow el cual muestra los datos de los alumnos, pero a la hora de eliminarlos, los elimina uno por uno, quisiera saber si me pudieran ayudar con el codigo de como eliminar por medio de box en el datawindow de tal forma que elimine todos los seleccionados.

les agradeceria mucho que me ayuden
  Respuesta:  Juan Carlos Hernandez
Hola te suguiero hacer los siguiente:
1. Crea un campo compute en la pestaña adjunta a la pestaña del Where. Este campo se puede definir asi: 0 as seleccion
2. Como es natural este campo aparecera como un campo mas disponible para ser usado
3. Modifica las propiedades de este campo en la pestaña Edit, lo cambias a Chekbox con valores para on = 1 y para off = 0

4. Este campo ahora se podra marcar o desmarcar según lo quiera el usuario.

5. Por ultimo programa un botón mas o menos asi:

long ll_i

for ll_i = dw_1.rowcount() step -1
if dw_1.object.seleccion[ll_i] = 1 then
dw_1.deleterow()
end if
next

Espero te sirva y haberte comprendido bien

    Pregunta:  48990 - ERROR DE SMARTHEAP LIBRARY CON PB 6
Autor:  Carlos V
Hola!,
tengo problemas con PB 6, me muestra un error de SmartHeap Library, tanto al cargarlo como al salir. ...Dónde se guardan las dll correspondientes a las librerías?, no sé si tienen nombres descriptivos o no....
Pueden haber conflictos con las dll si están instaladas las versiones 6.5, 7 y 8 de PB?.

De antemano gracias!
  Respuesta:  oxidosocial
Que tal!

Mira en las versiones que mencionas hay librerias comunes (una de ellas es libjcc.dll), no debe de haber problema si en tus actualizaciones tienes la ultima version (que seria la que viene con la version 8). Esto es en teoria por supuesto, nosotros tenemos un sistema que consta de 80 modulos, se realizo un plan para migrar poco a poco los modulos de version 7 a la 8, y sybase recomendo que no lo hicieramos, que era el cambio de todos los modulos a la vez o era nada.

Tambien, si tienes aplicaciones con power 6.5, 7 y 8 y el sistema operativo XP te da un error de memoria al cerrar las aplicaciones, esto se soluciona si te cambias a la version 9 o posterior.

Espero haber contestado al menos parte de tu pregunta.

Saludos.

    Pregunta:  49019 - MODIFICACION EN LA BASE DE DATOS
Autor:  Diego Castro
Tengo un problema, tengo una aplicacion en power builder y por motivos de fuerza mayor a la base de datos que llama esta aplicacion hubo que hacerle una modificacion, la modificacion es unicamente a una columna de una tabla x de la base de datos, a tal columna se le amplio el numero de caracteres que podia tener de 6 a 18 caracteres varchar2, el problema es que tengo muchos data objects que la usan y ,me tocaria cambiarlos a todos. mi pregunta es la siguiente, quiciera saber si hay una forma facil para no tener que cambiarlos a todos sino que los data objects se actualizen solo con el cambio en la base de datos?
  Respuesta:  José Cárdenas
Buenas, yo tuve que hacer algo parecido, para ello me cree una pequeña aplicación usando las funciones de power:

LibraryDelete Delete a library
LibraryDirectory Return a list containing all the objects of a specified type
LibraryDirectoryEx Return a list containing all the objects in a library
LibraryExport Export objects from a specified library
LibraryImport Import objects into a specified library
SetLibraryList Change the files in the library search path of the application.

A partir de la funcion LibraryDirectory y libraryexport sacaba el codigo fuente de los dw, una vez tenido el codigo fuente en un dw hacia las busquedas y modificaciones que queria, en tu caso, busca el campo que quieres modificar y hazlo, una vez cambiado importa el objeto con la funcion LibraryImport.

A mi me funciono perfectamente, y no se tarde mucho en programar esta aplicacion.

Suerte

|<  <<  24 25 26 27 28 29 30 31 32 33 34  >>  >|