PREGUNTAS CONTESTADAS - Power Builder

 Hay un total de 432 Preguntas.<<  >> 

    Pregunta:  3220 - PROBLEMAS DE COMUNICACIÓN
Autor:  Sergio
Cuando ejecuto una aplicación a veces me larga un error diciendo "Tipo de programa fuera de intervalo" y otras veces no. Siempre puedo ingresar a la aplicación pero cdo. ocurre el error no puedo interactuar con la base de datos ( base en access y Windows 98 edición especial).
Para mi es un error de ODBC, pero no estoy seguro ni sé como solucionarlo.
Desde ya muchas garcias.
  Respuesta:  Fernando Martín
Por los datos que das puede deberse como te han respondido por un problema de versiones de los controladores de ODBC. Sería de gran ayuda saber si la BBDD Access está creada con Access 97 ó 2000 y si el controlador ODBC es para una versión distinta de Access que la de la BBDD. Si la BBDD Access esta hecha con Access 2000 y el driver es para la `97 debes actualizar el controlador para que te funcione de manera estable.
  Respuesta:  Victoria Martinez
En realidad no es un error del ODBC, te cuento...
En una ventana tengo un boton que que conectaba a una base de datos de access 97, y estaba funcionando perfectamente, pero de repente un dia dejó de funcionar y me daba el mismo tipo de error... ´Tipo de programa fuera de intervalo´.. .lo primero que pense fue que las bases de datos estaban corrompidas y se habian estropeado, pero cualquier copia que utilizaba de ellas, le pasaba lo mismo. Entonces, decidi probar en diferentes ordenadores, y cual fue mi sorpresa cuando funcionó en uno que no tenia instalado el Microsoft SQL SERVER 7.0, pues con la versión 6.5 funcionaba correctamente.

Espero que te sirva de ayuda

Un saludo

    Pregunta:  3227 - LIBRERIAS EXTERNAS (DLL ) FUNCIONAN EN 5.0 PERO NO EN 6.5
Autor:  RODRIGO REINOSO
LAS LIBRERIAS EXTERNAS ( DLL ) QUE FUNCIONABAN CORRECTAMENTE EN VERSION 5.0 EN LA VERSION 6.5 YA NO SE COMPORTAN DE LA MISMA MANERA QUIEN TIENE ANTECEDENTES DEL CASO PARA QUE ME AYUDA, DE ANTE MANO GRACIAS RODRIGO.
  Respuesta:  victoria martinez
Estimado Rodrigo:
Deberias de mirar si las librerias son compatibles con la versión 6.5 de powerbuilder, y si no lo son, tienen que tener la actualizacion para esta versión. De todas formas, si son librerias dinámicas de código externo (como C ó C++) bastaria con regenerarlas.

Un saludo y espero que te sirva de ayuda

    Pregunta:  3341 - CONEXION CON BD ACCESS U OTRA
Autor:  Alexis Alberto Aravena Silva
!! Hola que tal !!
En primer lugar deseo saber si puedo conectar power builder con Access 97, si se puede, mi pregunta es como tengo que hacerlo ( paso por paso). Estoy aprendiendo a programar en este lenguaje, soy programador en Visual Basic.
gracias.
  Respuesta:  Victoria Martinez
los pasos que tienes que hacer son los siguientes:
1.- te tienes que crear un perfil de desarrollo contra esa base de datos
(si no sabes, en cualquier manual te lo cuentan)

2.- te creas una datawindow contra la tabla que quieras ver los datos

3.- pones el objeto datawindow en un control datawindow

4.- el código para conectarse es el siguiente:
//te creas una variable de instancia i_sqlca
transaction i_sqlca
i_sqlca = CREATE Transaction

// CONEXION CON LA BD DE ACCESS
i_sqlca.DBMS = "ODBC"
i_sqlca.AutoCommit = False
i_sqlca.DBParm = "Connectstring=´DSN="+as_basedatos+ "´"
//as_basedatos es el nombre de la base de datos

CONNECT Using i_sqlca ;

//se verifica que se haya conectado con la BD

if i_sqlca.sqlcode < 0 then
//ha ocurrido un error
return -1

else
//ha ido todo bien
return 1
end if
  Respuesta:  Eduardo Xavier T. G.
Hola. con respecto a tu pregunta puedes conectarte a cualquier DBMS que quieras, si lo haces con código es así:
sqlca.dbms = "odbc"
sqlca.dbparm = "ConnecString=´dsn=NombreOdbc; uid=UserName;pwd=Password´".
"NombreOdbc" lo tienes que hacer el elpanel de control con "fuentes de datos de 32 bits".
"uid" es el nombre de usuario.
y "Password" es la contraseña. Claro está que estos tres parámetros dependen de Dbms con el que te quieras conectar. si es con access "uid=Admin" y "pwd = "(vacio), esto debería ir en el script de la aplicación. bueno adiós y ojalá te sirva.

    Pregunta:  3617 - DAR ENTER EN UN SLE
Autor:  Richard Lazo Vigil
Hola estoy programando en Power Builder 7.0 y deseo pasar de un sle a otro dando enter lo he probado con el keydown y keyenter!, lo he hecho en el evento other pero no funciona el enfoque pasa dos objetos despues. Además el cb no reconoce en Enter.
Agradecería de antemano la respuesta.
  Respuesta:  jeremy jaramillo lopez
para que pases de un sle_1 a un sle_2 presionando la tecla enter simplemente en el evento modified del control sle_1 escribes el siguiente codigo: sle_2.setfocus(), con eso lograras que el cursor se posicione en el sle_2, espero halla resuelto tu duda.
  Respuesta:  Sergio Aguilar Portilla
sabes solamente hazle doble click en el sle_1 en este caso y en su script escribes sle_2.setfocus()
  Respuesta:  Jose Sumaria
si quieres cambiar el foco entre " sle " programa dentro del evento modified, si quieres q 1boton se ejecute al presionar enter activa la propiedad " default ", si quieres q se ejecute al presionar escape activa la propiedad " cancel ".
  Respuesta:  Ken
declaras un User Event en el sle de tipo pbm_keydown

-- En el evento

If KeyDown(KeyEnter!) then
Send(Handle(this),256,9,Long(0,0))
End if

// Con esto salta al objeto siguiente en el tab
// order

Saludos
KFer

    Pregunta:  3678 - OBTENER SQL GENERADO X PB
Autor:  Rodrigo
Mi consulta es: ¿Como puedo obtener o recuperar el SQL que genera automaticamente Power Builder cuando se actualizan los datos de una datawindows?

Mil gracias.
  Respuesta:  Keylor
Rodrigo, En el control Datawindow existe un evento llamado SQLPreviwe, este se dispara cada vez que se actualiza la información, en los parametros que provee se encuentra la variable sqlsyntax que es la que contiene el SQL.
este es un ejemplo de como lo hago yo:

actualizador es un objeto global, en el que almaceno la última centencia sql y una bandera que indica si desea ver el sql el usuario.
creo un evento en la ventana para poder pasar el sql al Clipboard de windows ya que no se puede hacer desde la DW, y pegarlo en otra aplicación.

string sq
actualizador.SQL = sqlsyntax
if actualizador.VerSQL then
if messagebox("Copiar",sqlsyntax,question!,yesno!) = 1 then
parent.triggerevent("ue_copiarsql")
end if
end if

Espero ayudarle

Keylor
  Respuesta:  Eduardo Sánchez
tu pregunta esta mera confusa
ya que existe un sql que genera la data window y dependiendo de la forma como elavoraste tu programa asi seria el evento save que puede ser un scrip o bien un sql regularmente no es usado como sql.

    Pregunta:  3838 - SONIDO EN PB6 O PB7
Autor:  Claudio Gajardo
Alguien sabe como reproducir archivos de sonido en powerbuilder 6 0 7 ??, seria excelente poder reproducirlos sin un objeto ole. osea algo asi como la API de windows, que se usa en VB para reproducir sonido wav y midi si tener que recurrir a los tan lentos OLE´s.

Si me pudieran ayudar lo agradeceria mucho....
  Respuesta:  Diogenes Alberto Moreira
Usa la funcion PlaySoundA de la API

    Pregunta:  3976 - GRAVAR ARCHIVOS
Autor:  Sergio
Hola: quiero grabar un grupo de registros en un archivo, pero cuando los grabo me los graba uno al lado del otro, y yo quiro que estén uno debajo del otro.
Si alguien sabe como se hace por favor que me ayude.
Saludos y gracias
  Respuesta:  Diogenes Alberto Moriera
No se como estas grabando el archivo.

si es desde una datawindow, fijate el tipo de formato con el que estas granbado

sino tenes que setear como separador de registro el char(13)

    Pregunta:  4156 - EJECUTABLE EN POWER BUILDER
Autor:  Xavier Sierra
Hola como están...
Mi pregunta es la siguiente:
Ocurre que cuando hago una aplicación con acceso a base de datos en PB , luego hago el ejecutable de esa aplicación y hasta ahí no tengo problema, pero cuando mando a ejecutar la aplicación y me intento conectar a la base de datos me sale un error que dice "DBMS ODBC IS NOT SUPPORTED IN YOUR CURRENT INSTALLATION", ya he probado de muchas formas pero sigue mal... si alguien me puede decir como puedo solucionar este problema se lo agradecería mucho...
De antemano gracias...
  Respuesta:  Gabriel Marighetti
Tenia el mismo problema. Migramos de PB4 a PB6 (parece prehistorico) y al compilar y crear el ejecutable salia el mismo error.
Como dijo Jorge Aramayo, en el path debe estar el camino con la carpeta en donde tiene pb las dll's.
En mi caso puse c:pwrspb6;c:pwrsshared y funciono a la maravilla.
Gracias.
  Respuesta:  Jorge Aramayo
Este tipo de errores ocurre cuando directorios donde estan los archivos dll que usa powerbuilder para su conexión no se encuentran en la variabla de entorno "Path".
Muchas veces este error solo ocurre con el ejecutable porque cuando estas corriendo powerbuilder, el mismo carga todas estas librerías.
No sé si en el mensaje de error aparezca el nombre del archivo que no puede encontrar, por ejemplo en Oracle diría algo así:
"DBMS ODBC is not supported in your current installation ODBC32.DLL not found". Si viene el nombre busca su directorio y lo agregas en el path.
Si no viene el nombre, entonces te recomiendo que busques en los directorios de Access e identifiques en cuales se guardan los dll's, generalmente este directorio se llama tambien "dll", y hay que incluirlo en el path.
Si esto no resuelve tu problema me avisas para intentar otra cosa y si ya no tienes el problema te agradecería que termines la evaluación al final de la pregunta. De todas maneras aqui estamos a tu servicio.

(Esto lo saqué desde otro lado.. Saludos a ExeFavio)
  Respuesta:  Jorge Miranda Castillo
Lo que sucede es que no tiene el driver instalado o registrado en el regedit. Puede buscar el driver en c:\archivos de programa\sybase\shared\power builder\XXX.dll
si lo encuentra lo debe abrir con "rundll32" para registrarlo en el regedit de windows.
  Respuesta:  Miguel Villadiego
Primero, que vesion de PB usas, Desktop? o Enterprise?
Segundo, si verificas que desde PB te cnecte a la BD. que tipo de conectidad usas "ODBC", "SYC"...

1. Si utilizas la version Desktop y tratas de utilizar conexion con las librerias nativas de conectividad mediante código
ej: "SYC", te sale ese mensaje.

2. SI utilizas la version Enterprise, debes estar referenciando mal los datos al objeto de conectividad "SQLCA"
Tambien te saldra este mensaje.

Solucion:

Si tienes la version Desktop, debes utilizar e instanciar el objeto de conectividad como ODBC
esto implica que debes generar el la fuente de datos en conf. ODBC, si es que existen los drivers para
ese motor especifico.
ej:
sqlca.dbms = "ODBC"
sqlca.dbparm = "Connectstring=´DSN=Powersoft Demo DB V6;UID=dba;PWD=sql´"
connect;
If sqlca.sqlcode <> 0 Then
MessageBox("Error Connecting to Database", sqlca.sqlerrtext, Exclamation!)
Halt Close
End if

Si tienes la Version Enterprise, verifica que en los conectores nativos este el de tu motor ej: IN7 INFORMIX V7.X
entonces debes crear un profile de conectividad .
ej:
/////////////////////////////////
// Configuración de la conexión
/////////////////////////////////
string ls_startupfile

ls_startupfile = "c:\ini\pb.ini"

sqlca.DBMS = ProfileString (ls_startupfile, "database", "dbms", "")
sqlca.database = ProfileString (ls_startupfile, "database", "database", "")
sqlca.userid = Profile
  Respuesta:  Diogenes Alberto Moreira
el problema pasa porque en la maquina donde estas corriendo la aplicacion no tenes instalado el driver odbc que estas usando en la aplicacion o no existe el DSN que estas tratando de usar

    Pregunta:  4184 - BROWSER DE INTERNET EXPLORER DENTRO DE APLICACION PWBD.
Autor:  Bernardo Calderon
Como puedo crear un Browser dentro de una Aplicación Power, he intentado con unas DLL que vienen con Microsoft ( por OLE ) pero no me ha funcionado...se cae cuando ejecuto una función de la Dll.
Como alternativa ejecuto el Iexplore desde power en modo Kiosco (-k) pero necesito deshabilitar las teclas de Control y las de funciones, necesito que solo salga boton Atras, Adelante e Imprimir..
  Respuesta:  Smith Tarazona Chuquillanqui
Para poder navegar en internete solo tienes q habilitar la olpcion del OLEDB en la pestaña insert control Explorador Web de Microsoft y el resultado es igual que VB
  Respuesta:  exaviertg exaviertg
Mira, cuando tú instalas el Internet Explorer 4 para arriba, también se instala en control ActiveX del Explorer, para hacer un browser tienes que insertar el control del explorer un una ventana power builder, eso lo haces cogiendo un control OLE de la barra de herramientas y en la ventana que se te abre te vas a la tercera pestaña e insertas en control activex del explorer. Este control activex viene con todas las funciones y propiedades del Explorer y sólo tienes que utilizarlas. Si te haces problema hazlo primero en Visual Basic. En POwer builder para utilizar un control ole tienes que poner por ejemplo:
acivex.object.propiedad o función, es decir el nombre del control ole (activex), la palabra "object" y la propiedad o función.
Espero que te sirva...
Atte : Extg.

    Pregunta:  4385 - PROBLEMAS CON UN CURSOR DINÁMICO (POWERBUILER Y ORACLE 8.0)
Autor:  Helmut
Trabajo en Powerbuilder 6.0 contra Oracle 8.0.
Intento hacer un cursor dinámico en PowerBuilder declarándolo de la siguiente manera:

prepare SQLSA from :miselect;
declare curestapoy dynamic cursor for SQLSA;
open dynamic curestapoy;
fetch ...

Cuando compilo no da errores, pero cuando ejecuto la aplicación, me da el siguiente error de PowerBuilder: R1022 (indicándome que la sentencia SQL que intento ejecutar (el fetch concretamente) no ha sido preparada debidamente). Este mismo trozo de programa funciona en SQL Server, lo que no entiendo es porqué no funciona en Oracle 8

Si podéis contestarme a la pregunta, hacedlo a la dirección de email.

Un saludo de antemano
  Respuesta:  Alberto Quintana Heras
Me respondo yo mismo la pregunta, porque encontré la solución, y era de lo más trivial.
Cuando se hace un cursor dinámico y se ha creado un objeto transacción distinto del SQLCA, lo que hay que hacer en la sentencia que declara el cursor es utilizar ese objeto transacción propio.

Es decir, mi sentencia sería, bien escrita:

prepare SQLSA from :miselect USING <mi objeto transacción>;
declare curestapoy dynamic cursor for SQLSA;
open dynamic curestapoy;
fetch ...

En la sentencia prepare no utilicé mi objeto transacción. Para que funcione debería haberlo puesto.
Muchas gracias por todo

|<  <<  1 2 3 4 5 6 7 8 9 10 11  >>  >|