Manual de Power Builder 2
Manual de Power Builder 2
html
Introducción
Power Builder
Qué es Power Builder ?
PowerBuilder es un ambiente para desdarrollar aplicaciones graficas. Usando
PowerBuilder, usted puede facilmente desarrollar poderosas aplicaciones grafica que accesa
a servidores de base de datos. PowerBuilder provee todas las herramientas que Ud. necesita
para construir aplicaciones industriales , tales como , contabilidad, sistemas de
manufactura, ect. PowerBuilder es un entorno de desarrollo comprensivo para construir
aplicaciones cliente /servidor de alto desempeño para la familia Windows, que combina una
interface gráfica intuitiva con un poderoso lenguaje de programación orientado a objetos.
Power Builder soporta multi-plataformas desarrolladas y desplegadas. Por ejemplo, Ud.
puede desarrollar una aplicacion usando PowerBuilder bajo windows(Win'95 o Win NT) y
desplegar la misma aplicacion -sin hacer cambios- sobre máquinas Win 3.11, Macintosh, o
Unix.
Desarrolo en Internet: Power Builder incluye herramientas que le permiten construir
aplicaciones basadas en Web y extender la existencia de su aplicacion al Internet. Es un
front-end que puede interactuar con la mayoría de DBMS basados en ODBC
Acerca de los Pintores(Painters)
Se puede construir los componentes de una aplicación usando pintores, los cuales proveen
una variedad de herramientas para construir objetos. Power Builder provee un pintor para
cada tipo de objeto que se puede construir. Por ejemplo: se puede construir una ventana con
el Pintor de Ventanas(Window painter).
Acerca de Eventos y Scripts
Las aplicaciones de Power Builder son manejadoras de eventos: los usuarios controlan el
flujo de la aplicación . Cuando un usuario hace click en un botón, elige una opción de un
menú, o ingresa datos en una caja de texto,un evento se dispara. Se encribe codigo(script)
que especifica el proceso que deberia suceder cuando el evento acurre.
Por ejemplo, Buttons tiene un evento Clicked. Se escribe un script(código) para el evento
clicked de Buttton que especifica que sucede cuando el usuarios hace click en el botón.
Se escribe Script usando PowerScript del lenguaje Power Builder.
Un Script consiste de comandos de PowerScript, funciones, y sentencias que realizan un
proceso en respuesta a un evento.
Acerca de las Librerias
Se puede gravar objetos, tales como , ventanas y menúes, en Librerias de
PowerBuilder(archivos .PBL). Cuando se corre una aplicación, PowerBuilder recupera los
objetos de la libreria. PowerBuilder provee un pintor Library(Libreria) para manejar
librerias.
Creando un ejecutable
Cuando se ha creado una aplicación completa, se puede crear un ejecutable de la aplicacion
para dar a diferentes usuarios y lo utilicen.
Explicación de Front-End y Back-End
Un front-end es un constructor de interfaces, es una herramienta de programación donde se
definen los formatos mediante los cuales se van a visualizar y manipular los datos. Un
back-end es la herramienta que almacena los datos y los entrega al front-end para su
manipulación
Explicación de Cliente/Servidor.
Cliente/Servidor es una organización de procesos, donde un proceso específico al que se le
denomina servidor se dedica exclusivamente a atender los requerimientos que le envían, un
grupo de procesos denominados clientes.
Objetos de PowerBuilder
· PowerBuilder es una herramienta orientada a objetos.
· Cada objeto tiene sus propios atributos y eventos
Objeto
Un objeto es cualquier entidad o cosa que se pueda representar o concebir mediante una
serie de características que lo definan
Atributos
Un atributo es una característica que define al objeto.
Evento
Es una circunstancia a la cual se asocia una porción de código de programación, que se
ejecuta cuando el evento se dispara. Ej: click del mouse, al abrir una ventana, al hacer
doble-click, etc..
Cada evento tiene asociado un espacio en donde se puede programar, a este espacio se le
conoce como script.
Los tipos de objetos más importantes son:
• Aplicación
• Ventana
• Menús
• DataWindows, ChildDatawindows
• Gráficos
• ListBox
• DropDownListBox
• Multilineedi
• CommandButton
• PictureButton
• Editmask
• Checkbox
• Radiobutton
• Groupbox, etc...
Definición de SQLCA
SQL Communications Area(SQLCA) es un objeto transaccional. Un objeto transaccional es
el área de comunicación entre el script (lugar donde se programa un evento) y la base de
datos. PowerBuilder define este tipo de objeto para facilitar la comunicación con la base de
datos desde el código de programación. Este objeto es accesado por default, cada vez que
se utiliza una sentencia SQL dentro de un script.
El Entorno de PowerBuilder
Cuando se empieza PowerBuilder, se abre una ventana que contiene un Menú y una
barra(PowerBar). Se puede utilizar pintores de PowerBuilder para crear ventanas, menues,
tables para una base de datos, y otros objetos que se necesite para la aplicación.
2. Puede elejir un proyecto que exista ya o ingresar uno nuevo. Si ya existe elija el
archivo que ya existe y presiona el botón OK y si es uno nuevo presiona el botón en
New(nuevo).
3. Luego aparece un espacio de trabajo para crear el protecto (Fig. 2), en donde se
ingresa el nombre del archivo ejecutable y varias de la opciones que se pueden ver
en la figura(más adelante se explican estas opciones para construir una aplicación.)
4. Una vez que ha ingresado todos los datos, en el menú pricipal en la opción
Design(diseño) elija la opción Build Project(contruir proyecto) para contruir un
ejecutable de la aplicación.
Fig. 2
Excutable Options
Si elije Native es sobre 32 Bits o sino sobre 16 bits. Dynamic Library Options (Opciones
de librerias dinámicas)
Se puede reducir el tamaño del archivo ejecutable para distribuir algunos de los objetos
requeridos en una libreria dinámica.
• MDI Frame
• MDI Frame with MicroHelp(con micro ayuda)
Construyendo una ventana Nueva
Esta sección describe cómo construir Windows del rasguño.Usted usará esta técnica para
crear ventanas que no están basadas sobre ventanas existentes.
2. Haga Click en el botón New(nuevo) para crear una ventana nueva y aparece un
espacio de trabajo para crear nuestra nueva ventana.
Ademas, el botón OK , sirve para cuando ya existe una ventana y queremos trabajar
sobre ella o modificarla, entonces elegimos una ventana y presionamos OK.
Existe también el botón Inherit , esta opción es cuando queremos crear una ventana
nueva , pero heredamos todas las características de una ventana que ya existe.
3. Aparecen dos barra de herramientas la barra del pintor (PainterBar) que trabaja de la
misma manera como en otros pintores.
4. El pintor Window tiene una Barra de estilos(StyleBar) que se usa para asignar
propiedades al texto.
• Tipo
• Apariencia Básica
• Posicipon inicial sobre la pantalla
• Botones
• Puntero a la pantalla.
Para definir el estilo de la ventana debe elejir de diferentes hojas de la página de
propiedades de la ventana, como se muestra en la figura siguiente, en donde cada tiempo va
cambiando y muestra todas las hojas de propiedades:
Propiedad General
• Primero debe elegir el tipo de ventana de una lista.(Main Popup,MDI Frame,
Child,Response)
• El título de la ventana .
• Una ventana Main o MDI Frame deben tener asociado un menú mientras que las
ventanas Hijo o Response no pueden tener nunca un menú.
Para asociar una ventana con un menú, debe hacer click en Browser y elegir un
menú que previamente se debe haber creado.
• Elegir color de la ventana Window Color, una etiqueta en la opción Tag.
• En esta opción puede elegir el tipo de ventana que desee, si es la ventana principal
de la aplicación entonces el tipo debe ser application!,o si una ventana es tipo
response entonces puede elegir el tipo información(Information!) , etc.
• Aqui se puede elegir diferentes tipos de iconos de ventanas ,Ej: application! etc, o se
puede elegir otro archivo (.ICO) haciendo click en Browser.
• En esta opción Ud. puede elegir en que lugar quiere ubicar la barra de herramientas
PowerBuilder, ya sea en la parte superios, a la derecha, ect, o tambien puede dar una
localización dando valores a las coordenadas X y Y.
Luego de poner las propiedades a la ventana haga click en OK.
Agregando Controles
Cuando se construye una ventana, se puede colocar controles(tales como: CheckBos,
CommadButton, etc.) dentro de la ventana para pedir y recibir información del usuario y
presentar información para el usuario.
Despues de colocar un control en la ventana, se puede definir el estilo, moverlo, escribir
codigo(script) para que el control responda de acuerdo a un evento.
Escribiendo Código(Script) en una ventana
Se puede escribir código(script) en los eventos de una ventana y además en los controles
que estan colocados dentro de la ventana.
Para escribir código(script) para un ventana o un control, coloque el mouse sobre la ventana
(o el control) y haga click derecho con el mouse y elija la opción script o por el menú elija
la opción Edit y luego seleccione script o haga click sobre el icono script en la barra de
herramientas, entonces puede elejir el evento y escribir el código respectivo.
Por ejemplo: puede elegir el evento OPEN , este evento se dispara cuando se abre la
ventana y ecribir el script correspondiente.
Además de elegir el evento en el cual vamos a poner codigo(script), podemos pegar
argumentos, objetos ya existenes, variables globales y variables de instancia.
2. Haga Click en el botón Inherit(heredar) para heredar de una ventana que ya existe.
3. Luego aparece otra ventan, en donde debemos seleccionar la ventana de la cual
vamos heredar, en este caso, w_padre_ingreso.
4. Luego que hemos seleccionado la ventana , nos aparece la nueva ventana heredada,
en la cual podemos ponerle un nombre(w_ingreso_alumnos), y agregarle las
características propias para esta nueva ventana. Podemos cambiar las características
de la ventana. agregar controloles, contruir nuevos scripts pasra otros eventos,
agregar codig´po a los scriptis existentes, referenciar a las funciones y eventos de la
ventana padre, declarar nuevas variables, etc.
5. Si Ud. no necesita de algún control heredado, ud. puede harcerlo invisible a ese
control en la ventana descendiente.
• Un Botón Cerrar, que realiza un cierto número de operaciones y luego cierra una
ventana.
• Un ListBox que lista todos los departamentos.
• Un control DataWindow que lleva a cabo un chequeo del mismo tipo de error.
• Procesos que se realizan en varias partes del sistema.
Si Ud. está usando en la misma aplicación características repetidas, Ud. podría definir un
Obejto de usuraio(User Objets): Ud. define el objeto de usuario una vez en el pintor Objeto
de usuario(User Objets) y puede usar tantas veces como lo necesite.
Hay dos tipos de Objetos de usuario:
• Visuales
• Clase(Class)
El pintor Menú tiene varios areas de trabajo en las cuales se especifica las diferentes partes
de un menú:
Menú Bar: Seleccione un Objeto de menu ya existente de la barra de menú(menu bar) o
uno nuevo al inicio de la ventana para crear un menú. El menú en la imagen de la ventana
anterior tiene dos objetos en la barra de menú(menu bar): Archivos y Datos.
En esta ventana se especifica el nivel de acceso de la función -el lugar desde el cual
Ud. puede llamar a la función en una aplicación.
Para Funciones Globales
Las funciones globales pueden ser llamadas desde cualquier parte de la aplicación.
En términos de PowerBuilder, estas funciones son Públicas(Public). Además
cuando Ud. está definiendo una función global, no se puede modificar el acceso.
Para Funciones a nivel de un objeto
Se puede restringir el acceso a una función a nivel de objetos por un conjunto de
niveles de acceso como se muestra a continuación:
Acceso Desde donde se puede llamar a la función
Public Desde cualquier script de la aplicación
Solo en scripts de eventos en el objeto en el cual la función es definida.
Private No se puede llmar a la función desde los objetos decendientes de otro
objeto.
Solo en scripts para objetos en los cuales la función fue definida y para
Protected
los objetos descendientes del objeto padre.
Si una función está solamente para ser usada dentro de un objeto, debería definir el acceso
como private o protected. De esta forma. ud. garantiza que la función nunca sea llamada
inapropiadamente desde fuera del objeto.(En términos orientados a objetos, definiendo
funciones como private o protected se encapsula la función dentro del objeto).
• Definir los argumentos para la función
Como en las funciones hechas en PowerBuilder, las funciones definidas por el usuario
pueden tener un determinado número de argumentos o ninguno. Ud. declara los argumentos
y sus tipos cuando define la función.
Pasos para definir los argumentos:
1. Poner el nombre del argumento(el orden como especifica los argumentos es el orden
cuando se llama a la función)
2. Declarar el tipo de los argumentos, existen varios tipos:
o Tipos de datos propios del PowerBuilder(Integer, real, etc)
o Tipos de Objetos(tales como window) u objetos específicos(tales como
w_empleado)
o Objetos de usuario
o Controles (tales como CommmandButtons)
3. Declarar como se quiere que los argumentos sean pasados, existen tres tipos para
pasar los argumentos:
o Por referencia: Cuando se pasa un argumento por referencia, la función
tiene acceso a los argumentos originales y se puede cambiar los datos
directamente.
o Por valor: Cuando se pasa por valor, se esta pasando a la función una copia
temporal y local del argumento. La función puede cambiar el valor de la
copia local del argumento dentro de la función, pero el valor del argumento
no es cambiado desde el script que es llamada la función.
o Solo lectura(ReadOnly): Cuando pasa un argumento solo lectura, el valor
de la variable está disponible en la función, pero es tratada como una
constante. Este tipo provee un gran desempeño para valores como cadenas
(strings), Bolbs, Date, time, DateTime, por que no crea una copia del dato
que es pasado.
4. Si se quiere agregar otro argumento haga click en el boton Add y repita los pasos
del 1 al 3.
5. Finalmente haga click en OK.
• Implementar el código para la función
El pintor Función, una vez que se ha definido la función con sus parámetros, despliega un
espacio de trabajo para poder implementar el codigo en la función, esto es, con
PowerScript.
Una función definida por el usuario puede contener sentencias PowerScript, sentencias
SQL integradas y llamadas a funciones propias del PowerBuilder, y otras funciones.
Para retornar una valor se utiliza la sentencia RETURN:
RETURN expesion
Ejemplo:
IF arg2 <> 0 THEN
RETURN arg1/arg2
ELSE
RETURN -1
END IF
Compilar
Reglas de validación
Si una columna puede tomar números solamente en un rango específico, ud. puede
especificar una regla simple de validación para la columna, sin escribir ningún código, y así
asegurarse que el usuario ingrese datos válidos.
2. Haga Click en el Botón New para crear una Consulta nueva en la ventana de
diálogo o elija una consulta ya existente y haga click en OK para modificar la
consulta. Entonces se despliega un área de trabajo para crear o modificar una
consulta.
3. Seleccione las tablas de la ventana de diálogo que aparece y luego las columnas que
desea que se despliegen en la consulta.
Además se puede definir criterios para ordenar datos de acuerdo a una columna o
más, criterios para agrupar datos, definir campos calculados(Competed), y así
sucesivamente, de manera parecida cuando crea objetos datawindow usando fuentes
de datos con SQL select.
• Conducir una Base de datos íntegra, una tabla a la vez, a otro DBMS.
• Crear una tabla con el mismo diseño como una tabla ya hecha pero sin datos.
• Conducir datos agrupados de una base de datos servidora a una base de datos SQL
Anywhere sobre su computadora y que ud. pueda trabajar sobre los datos y sacar
reportes sin necesidad de acceder a la red.
Una vez que se ha definido el pipeline, se puede ejecutarlo inmediatamente. Si ud. quiere,
puede además grabarlo como un objeto y ponerle un nombre para usarlo las veces que se
quiera.
Creando un Data Pipeline
1. Hacer click en el pintor Data Pipeline de la barra PowerBar.
Luego en la ventana de diálogo seleccione un data Pipeline existente y haga click en
OK, pero si desea crear uno nuevo haga click en NEW
2. Si hace click en NEW, aparece el cuadro de diálogo para el nuevo Data Pipeline:
En la opción Databese Connection, La conexión origen(Source connection) y la
conexión destino(Destination connection) se despliegan los profiles de las base de
datos que han sido definidos.
Nota: Si se quiere usar una base de datos como fuente o destino se debe crear un
profile para que aparesca en la ventana de diálogo para un nuevo data pipeline, pero
si su base de datos no aparece es que todavía no se crea un profile, por tanto debe
definir un profile para su base de datos.
2. Luego si hace click en el botón New , para crear una nueva tabla
o
elige una tabla ya existente, para modificar la definición de dicha tabla y haga click
en Open para abrir la tabla.
5. Repita los pasos 3 y 4 hasta que ingrese todas las columnas de la tabla.
6. Luego presione el botón para grabar la nueva tabla y poner un nombre a la tabla.
7. Haga click en Close para cerrar la tabla.
2. Luego aparece una ventana de diálogo para configurar el ODBC, en donde primero
tenemos los manejadores instalados de los diferentes Motores de base de datos, por
ejemplo Sybase SQL AnyWhere 5.0 , y en otra ventana están los archvios de las
bases de datos que tiene cada motor de base de datos.
3. Si queremos crear una nueva configuración ODBC para un archivo de base de datos
presionamos el boton Create..., y aparece la siguiente pantalla:
La ventana de diálogo de la configuración ODBC SQL Anywhere DBC contiene los
siguietes campos. Estos campos corresponden a los parámetros de conexión. Mire
Connection Parameters para una descripcion de los parametros de conexión y una
descripción de la manera en que estos se usan para establecer una conexión con una
base de datos.
Data Source Name Se ingresa un nombre corto de la fuente de datos, tal como
Ordenes de ventas.
Descripción Una descripción detallada de la fuente de datos.
User ID (Opcional) El nombre del usuario que va usar cuando se realiza la
conexión.
Password (Opcional) El password para proporcionar un identificador de usuario.
Desde que se proporciona el Password es almacenado en el odbc.ini, colocando el
password aqui deberia ser una seguridad contra riesgos.
Server Name El nombre de un motor de base de datos SQL Anywhere o el nombre
de un servidor de red SQL Anywhere. Si no es especificado, por default se carga el
motor local (el primer motor de base de datos iniciado). Este campo corresponde al
parámetro de conexión EngineName.
Database Name Si se especifica, este corresponde al nombre de la base de datos
que ya esta corriendo sobre el motor de base de datos SQL Anywhere o el servidor
de red SQL Anywhere. Este campo corresponde al parámetro de conexión
DatabaseName.
Database File Si se especifica, este contiene el nombre del archivo de la base de
datos--tales como c:\sqlany50\sademo.db. Ud. hacer click en el boton Browse para
localizar al archivo de base de datos. Este campo corresponde al parámetro de
conexión DatabaseFile.
Local, Network, Custom El commando usado para correr el software de base de
datos cuando el nombre del motor de base de datos o servidor no se está ejecutando.
Ud. puede seleccionar Local o Network, como aproppiado, si el conjunto de
parametros están correctamente. De otra manera, seleccione Custom e ingrese el
comando incluyendo algún comando en la linea parametros presionando el boton
Opciones.
Translator Name Si se especifica, este contiene el nombre de un traductor ODBC.
Un Traductor DLL causa que todos los datos pasen entre un aplicación y la base de
datos a traducirse.
2. Luego aparece una ventana de diálogo para ver los diferentes perfiles de Base de
Datos de los diferentes Motores de base de datos existentes.
3. Si presionamos el botón Edit, podemos cambiar ciertos parámetros o agregar otros
al perfil, por ejemplo: agregar ciertos parámetros para hacer que la base se pueda
conectarse en red.
*****************************************************************
*******
Manejando el archivo de Inicialización
Cuando inicia el Power Builder, el PowerBuilder busca por el archivo de inicialización y
configura su entorno.
Acerca del archivo de Inicialización
El Archivo de inicialización es un archivo de texto que contiene variables que especifican
las preferencias de PowerBuilder. Estas preferencias incluyen cosas como, la última base de
datos a la cual estaba conectada, el PBL que se estaba usando.
Formato de Archivos .INI
El archivo de inicialización de PowerBuilder el formato de los archivos INI de windows en
todas las plataformas. Hay tres tios de elemntos:
Nombre de la Sección, los cuales son encerradas entre corchetes Ej: [database]
Palabras Claves, en los cuales son los nombres del conjunto de preferencias
Valores, pueden ser numéricos o cadenas de texto, asignadas como un valor que se
asocian a la palabra Clave.
Sección Lo que contiene
El nombre y localización de la aplicación actual y librerias de
Application
PowerBuilder, y una historia de aplicaciones pervias .
Barra de herramientas básico, tamaño de las ventanas, y preferencias en
PB generación de código, así como los nombres de los objetos más
recientemente abiertos.
El perfil de la base de datos actual. la lista de los DBMS's disponibles, y
DataBase
otras preferencias del pintor de Base de datos(DataBase painter).
DBMS_Profiles El nombre del perfil de la base de datos actual y una lista de otros perfiles.
Profile name El perfil de la base de datos en donde su nombre es name
El esquema de la ventana actual que se esta depurando, y los puntos de
Debug
quiebre y las ventanas de expresión
Ejemplo de un archivo de inicialización laboratorio.ini :
[Database]
DBMS=ODBC
Database=Laboratorio.db
UserId=
DatabasePassword=
LogPassword=
ServerName=
DbParm=Connectstring='DSN=Laboratorio'
Prompt=0
[Debug]
VariablesWindow=0
WatchWindow=0
[DBMS_PROFILES]
CURRENT=Laboratorio.pbl
PROFILES='Laboratorio.pbl','ABNC Main DB V5','Powersoft Demo DB V5','ABNC
Sales DB V5'
History='Laboratorio.pbl','ABNC Main DB V5','Powersoft Demo DB V5','ABNC
Sales DB V5'
Lenguaje Básico
Comentarios
Descripción
Se puede usar comentarios para documentar su scripts y evitar sentencias dentro de un
script de ejecución. hay dos métodos:
Sintaxis
Método Doble-slash
Código // Comentario
Método Slash-y-asterisco
/* Comentario */
Uso
Agregar comentarios
En los pintores tanto en el PowerScript y Funciones, ud. puede usar el botón de Seleción de
comentarios(Comment Selection button) o seleccionar del menu la opción Edit>Comment
Selection o de la barra de menú) para poner comentarios en una línea o seleccionar un
grupo de líneas.
Ejemplos
Metodo Doble-slash
// Esta línea completa es un comentario.
amt = qty * cost // El resto de la linea es un comentario como un apoyo
Método Slash-y-asterisco
/* Esta linea sinple en un comentario. */
A = B + C /* Este es un comentario luego de la suma /*
Nombre de Identificadores
Descripción
Puede usar identificadores par nombrar variables, etiquetas(labels), funciones,
ventanas(windows), controles, menus, y cualquier otro que se refiera en un script.
Sintaxis
Reglas para identificadores:
• debe empezar con una letra o un _ (underscore) Ej: _nombre
Etiquetas(Labels)
Descripción
Ud. puede incluir etiquetas en un script para usar con la sentencia GOTO
Sintaxis
Identificador :
Uso
Una etiqueta puede ser un identificador válido. Ud. puede ingresarlo en la misma línea al
inicio de la sentencia o sobre la sentencia.
Ejemplo
On a line by itself above the statement
FindCity: IF city=cityname[1] THEN ...
Inicia antes de la sentencia en la misma línea.
Sentencias SQL
COMMIT
Descripción
Permanente actualiza todas las operaciones desde antes de un COMMIT, ROLLBACK, o
CONNECT para el objeto transacción especificado.
Commit termina la unidad lógica de trabajo, garantiza todos los cambios hechos en la base
de datos desde el inicio de la unidad de trabajo actual y que es permanente, y empieza la
nueva unidad lógica de trabajo.
Sintaxis
COMMIT {USING TransactionObject} ;
Parámetro Descripción
El nombre del objeto transacción para el cual ud.
quiere permanentemente actualizar todas las
operaciones de la base de datos desde el ultimo
TransactionObject COMMIT, ROLLBACK, o CONNECT. Esta clausula
es requerida solamente para los objetos transacción
que son diferentes al objeto transacción por default
(SQLCA)
Uso
COMMIT no causa una desconexión, pero cierra todos los cursores o procedimientos
abiertos.
(Pero note que la sentencia DISCONNECT en PowerBuilder si emite un COMMIT.)
Ejemplos
Ejemplo 1
Esta sentencia comete todas las operaciones para la base de datos especificada en el objeto
transaccion por defecto.
COMMIT ;
Ejemplo 2
Esta sentencia comete todas las operaciones para la base de datos especificada en el objeto
transacción llamado emp_tran
COMMIT USING emp_tran;
CONNECT
Descripción
Conecta a una base de datos especifica.
Sintaxis
CONNECT {USING TransactionObject} ;
Parámetro Descripción
TransactionObject El nombre del objeto transacción conteniendo la
información requerida de conexión para la base de
datos a la cual ud. quiere conectarse. Esta clausula es
requerida solamente para los objetos transacción que
son diferentes al objeto transacción por default
(SQLCA)
Uso
Esta sentencia debe ser ejecutada antes de alguna acción( tales como INSERT, UPDATE, o
DELETE) que puede ser procesada usando el objeto transacción por defecto o el objeto
transacción especificado.
Ejemplos
Ejenplo 1
Esta sentencia conecta a la bse de datos epecificada en el objeto transacción por defecto:
CONNECT ;
Ejemplo 2
Esta sentencia conecta a la bse de datos epecificada en el objeto transacción llamado
Emp_tran:
CONNECT USING Emp_tran ;
DELETE
Descripción
Borra las filas de la tabla(TableName) especificada dado algún creterio.
Sintaxis
DELETE FROM TableName WHERE Criteria {USING TransactionObject} ;
Parámetro Descripción
El nombre de la tabla desde la cual ud. quiere borrar
TableName
las filas
Criteria Criterios que especifica cuales filas serán borradas
El nombre del objeto transacción que identifica la
base de datos que contiene la tabla. Esta clausula es
TransactionObject requerida solamente para los objetos transacción que
son diferentes al objeto transacción por default
(SQLCA)
Uso
Cuando se desea eliminar filas de una tabla específica, a la cual se puede dar criterios de
eliminación.
Ejemplos
Ejemplo 1
Esta sentencia borra las filas de la tabla Empleado en donde la columna Emp_num es
menor que 100:
DELETE FROM Empleado
WHERE Emp_num (menor que) 100 ;
Ejemplo 2
Esta sentencia borra las filas de la tabla empleado en la base de datos especificada en el
objeto transacción llamado Emp_tran donde Emp_num es igual a un valor ingresado en la
SingleLineEdit sle_number:
int Emp_num
Emp_num = Integer(sle_number.Text)
DELETE FROM Employee
WHERE Empleado.Emp_num = :Emp_num ;
USING Emp_tran;
DISCONNECT
Descripción
Ejecuta un COMMIT para el objeto transacciòn especificado y entonces se desconecta
desde la base de datos especificada.
Sintaxis
DISCONNECT {USING TransactionObject} ;
Parámetro Descripción
El nombre del objeto transacción que identifica la
base de datos que ud. quiere desconectar. Esta
TransactionObject clausula es requerida solamente para los objetos
transacción que son diferentes al objeto transacción
por default (SQLCA)
Uso
Se usa para deconectar una base de datos.
Ejemplos
Ejemplo 1
Esta sentencia desconecta a la base de datos especificada en el objeto transacciòn por
default.
DISCONNECT ;
Ejemplo 2
Esta sentencia desconecta a la base de datos especificada en el objeto transacciòn llamado
Emp_tran:
DISCONNECT USING Emp_tran ;
INSERT
Descripción
Inserta una o más nuevas filas en una tabla especificada en RestOfInsertStatement.
Sintaxis
INSERT RestOfInsertStatement {USING TransactionObject} ;
Parámetro Descripción
El apoyo de la sentencia INSERT (la clausula
RestOfInsertStatement
INTO, lista de columnas y valores o el origen)
El nombre del objeto transacción que identifica la
base de datos que contiene la tabla. Esta clausula
TransactionObject es requerida solamente para los objetos
transacción que son diferentes al objeto
transacción por default (SQLCA)
Uso
La sentencia INSERT se utiliza para insertar filas a una tabla de un base de datos.
Ejemplos
Ejemplo 1
Esta sentencia inserta una fila con los valores en tienen la variables Emp_Nbr y Emp_Name
en las columnas Empnbr y Empname de la tabla Empleado identificada por el objeto
transacción por defecto transaction object:
int Emp_Nbr
string Emp_Name
INSERT INTO Empleado (empleado.Empnbr,empleado.Empname) VALUES (:Emp_Nbr,
:Emp_Name) ;
Ejemplo 2
Este ejemplo inserta una fila con los valores ingresados en el SingleLineEdits(campo de
edición) sle_number y sle_name en las columnas Emp_nbr and Emp_name dela tabla
empleado en el objeto transacción llamado Emp_tran:
int EmpNbr
EmpNbr = Integer(sle_number.Text)
INSERT INTO Employee (employee.Emp_nbr, employee.Emp_name)
USING Emp_tran ;
ROLLBACK
Descripción
Cancela todas las operaciones de base de datos en la Base de datos Especidicada desde el
último COMMIT, ROLLBACK, or CONNECT. RollBack que no cause una desconexión.
Sintaxis
ROLLBACK {USING TransactionObject} ;
Parámetro Descripción
El nombre del objeto transacción que identifica la
base de datos en la cual ud. quiere cancelar todas las
operaciones desde el ultimo COMMIT, ROLLBACK,
TransactionObject or CONNECT.
Esta clausula es requerida solamente para los objetos
transacción que son diferentes al objeto transacción
por default (SQLCA)
Uso
ROLLBACK no causa una disconexión, pero hace que se cierren todos los cursores o
procedimientos abiertos.
Ejemplos
Ejemplo 1
Esta sentencia cancela todas las operaciones en la base de datos especificada en el objeto
transacción por defecto(SQLCA)
ROLLBACK ; Ejemplo 2
Esta sentencia cancela todas las operaciones en la base de datos especificada en el objeto
transacción llamada Emp_tran.
ROLLBACK USING Emp_tran;
SELECT
Descripción
Selecciona una fila de la tabla especificada en RestOfSelectStatement.
Sintaxis
SELECT RestOfSelectStatement {USING TransactionObject} ;
Parámetro Descripción
El apoyo de la sentencia SELECT ( las clausula
RestOfInsertStatement
INTO, FROM, WHERE, y otras clausulas)
El nombre del objeto transacción que identifica la
base de datos que contiene la tabla. Esta clausula
TransactionObject es requerida solamente para los objetos
transacción que son diferentes al objeto
transacción por default (SQLCA)
Uso
Un error ocurre si la sentencia SELECT retorna mas que una fila.
Ejemplo
Los siguientes datos de la sentencia SELECT en las columnasd Emp_LName y
Emp_FName de una fila en la tabla empleado y pone los datos en los
SingleLineEdits(campo de edición) sle_LName y sle_FName (el objeto transacción
Emp_tran es usado):
int Emp_num
Emp_num = Integer(sle_Emp_Num.Text)
SELECT empleado.Emp_LName, empleado.Emp_FName
INTO :sle_LName.text, :sle_FName.text FROM Employee
WHERE Empleado.Emp_nbr = :Emp_num
USING Emp_tran ;
if Emp_tran.SQLCode = 100 then
MessageBox("Información Empleado", "Empleado no encontrado")
elseif Emp_tran.SQLCode > 0 then
MessageBox("Error Database", Emp_tran.SQLErrText, Exclamation!)
End If
UPDATE
Descripción
Actualiza las filas especificadas en el paràmetro RestOfUpdateStatement.
Sintaxis
UPDATE TableName RestOfUpdateStatement {USING TransactionObject} ;
Parámetro Descripción
El nombre de la tabla en la cual ud. quiere
TableName
actualizar las filas.
El apoyo de la sentencia UPDATE ( las clausula
RestOfUpdateStatement
SET y WHERE)
El nombre del objeto transacción que identifica
la base de datos que contiene la tabla. Esta
TransactionObject clausula es requerida solamente para los objetos
transacción que son diferentes al objeto
transacción por default (SQLCA)
Uso
Esta sentencia sirve para actualizar datos de una tabla.
Ejemplos
Esta sentencia actualiza filas de la tabla empleado en la base de datos especificada en el
objeto transacciòn llamado Emp_tran donde Emp_num es igual al valor ingresado en el
SingleLineEdit sle_Number:
int Emp_num
Emp_num=Integer(sle_Number.Text )
UPDATE Empleado
SET emp_name = :sle_Name.Text
WHERE Employee.emp_num = :Emp_num
USING Emp_tran ; IF Emptran.SQLNRows > 0 THEN
COMMIT USING Emp_tran ; END IF
Funciones de Power Builder
AcceptText()
Descripción
Aplica el contenido del control de edición(edit control) del Datawindow al item actual en el
buffer de un control DataWindow o DataStore. El dato en el control de edición debe pasar
la regla de validación para la columna antes de poder ser almacenado en el item.
Aplicado a
Controles DataWindow, objetos DataStore, y DataWindows child().
Sintaxis
dwcontrol.AcceptText()
Argumento Descripción
El nombre del control DataWindow ,DataStore, o child
dwcontrol DataWindow que el que ud. quiere aceptar datos ingresados
en el control de edición(edit control)
El Nombre del objeto transacción que ud. quiere usar en el
transaction
dwcontrol
Valor que Returna
Integer. Returna 1 si ha sicedido y -1 si a acurrido un error(por ejemplo, si el dato no ha
pasado la validación). Si el dwcontrol es nulo, AcceptText retorna NULL.
Uso
Cuando el usuario se mueve de un item a otro en un control datawindow, el control valida y
acepta lo que el usuario ha ingresado. Cuando el usuario a modificado un item en un
Datawindow e inmediatamente cambia el enfoque a otro control en la ventana, el control
Datawindow no acepta el dato modificado -los restos de los datos en el edit control . Use la
función AcceptText en esta situación y asegurarse que el objeto Datawindow contenga los
datos que el usuario a ingresado. Un tipico lugar para llamar a la función AcceptText es en
el evento LoseFocus del Datawindow. AcceptText en el evento ItemChanged no tiene
efecto.
Ejemplos
En este ejemplo, el usuario espera ingresar un valor de código(tal como numero de
empleado) en una columna de un objeto Datawindow , y luego hacer click en el botón Ok.
Este es el script para el evento clicked del botón OK , llama a AcceptText y valida la
entrada y si esta correcto recupera datos del empleado.
IF dw_emp.AcceptText() = 1 THEN
dw_emp.Retrieve(dw_emp.GetItemString(dw_emp.GetRow(), dw_emp.GetColumn()))
END IF
SetTransObject()
Descripción
Causa que un programador específico use el Control Datawindow o DataStore como un
objeto transaccional. Un objeto transaccional provee de la información necesaria para la
comunicación con la Base. De Datos.
Sintaxis
dwcontrol.SetTransObject (transaction)
Argumento Descripción
El nombre del control DataWindow ,DataStore, o child
dwcontrol DataWindow que el programador quiere usar como objeto
transaccional
El Nombre del objeto transacción que ud. quiere usar en el
transaction
dwcontrol
Valor que Returna
Integer. Returna 1 si ha sicedido y -1 si a acurrido un error. Si el valor del argumento es
nulo, SetTransObject retorna NULL.
Uso
Un objeto transaction que usa el programador le da mas control sobre las transacciones en
la base de datos y provee un desempeño eficiente en la aplicación. Ud. controla la conexión
a la base de datos para usar sentencias SQL tales como CONNECT, COMMIT, and
ROLLBACK.
Ejemplos :
dw_profesor.SetTransObject(SQLCA)
dw_profesor.SetTransObject(emp_transobject)
IF dw_Empleado.Update()>0 THEN
COMMIT USING emp_transobject;
ELSE
ROLLBACK USING emp_transobject;
Retrieve()
Descripción
Recupera filas de la Base de Datos para un Control Datawindow o DataStore. Si son
incluidos argumentos , los valores de los argumentos son usados para la recuperación de
filas en la sentencia SQL SELECT para el objeto DataWindow o DataWindow hijo.
Sintaxis
dwcontrol.Retrieve ( {argumento1, argumento2 ...})
Argumento Description
El nombre del control DataWindow ,DataStore, o
dwcontrol child DataWindow que ud. quiere para recuperar
filas de la base de datos.
Uno o ma´s valores que ud. quiere usar como
argument(opcional) argumentos de recuperación en la sentencia SQL
SELECT definida en el dwcontrol
Valor que Returna
Long. Retorna el número de filas desplegadas si ha sucedido y -1 si ha fallado. Si el valor
del argumento es nulo, Retrieve retorna NULL.
Uso
Para recuperar filas de una tabla de la base de datos.
Antes que ud. recupere las filas para un DataWindow control or DataStore, debe especificar
objeto transaction con SetTransObject or SetTrans. Si usa SetTransObject, debe además
usar sentencia SQL CONNECT para establecer conexión con la base de datos.
Ejemplo:
If dw_profesor.Retrieve() = -1 Then
RollBack ;
messagebox("Error","Fallo la recuperación",Exclamation!)
Else
Commit ;
End If
Ej : En el siguiente ejemplo mandamos un parámetro que es el código de un profesor
cualquiera y nos recupera datos solo de ese código.
If dw_profesor.Retrieve( li_codigo) = -1 Then
RollBack ;
messagebox("Error","Fallo la recuperación",Exclamation!)
Else
Commit ;
dw_ profesor.SetRowFocusIndicator(Hand!)
dw_ profesor.SetFocus()
End If
SetItem()
Descripción
Coloca en la fila y columna específica de un datawindow control o dataStore un valor
especificado.
Sintaxis
dwcontrol.SetItem (row, column, value)
Argumento Description
dwcontrol El nombre del control DataWindow ,DataStore, o child
DataWindow en el cual ud. quiere colocar en una
determinada fila y columna un valor
Un entero(long) cuyo valor sea la ubicación de la fila del
row
dato
La ubicación de la columna del dato. La Columna puede ser
column
un numero(integer) o el nombre de la cadena(string)
El valor que ud. quiere colocar en la ubicación fila y
value columna. El tipo de dato del valor debe ser el mismo tipo que
el de la columna
Valor que retorna
Integer. Returna 1 si ha sucedido y -1 si a acurrido un error.
Uso
SetItem coloca un valor en el buffer del DataWindow.
Ejemplo : En el siguiente ejemplo, se coloca en la fila tres y en la columna Pro_nombre, el
valor de José Perez.
dw_profesor.SetItem(3, "pro_nombre", "Jose Perez")
GetItemString()
Descripción
Obtiene un dato cuyo tipo es cadena del buffer especificado de un control DataWindow o
un objeto DataStore.
Sintaxis
dwcontrol.GetItemString(row,column{,dwbuffer,originalvalue})
Argumento Description
El nombre del control DataWindow ,DataStore, o
child DataWindow en el cual ud. quiere obtener la
dwcontrol
cadena de datos contenida en una fila y columna
especificada.
Un entero(long) cuyo valor sea la ubicación de la
row
fila del dato
La ubicación de la columna del dato. La Columna
column puede ser un numero(integer) o el nombre de la
cadena(string)
Un valor del dwBuffer enumerado por el tipo de
dwbuffer(opcional)
dato identificando el buffer del DataWindow
Un boolean indicando si ud. quiere el original o el
originalvalue
valor actuals para una fila y columna
(opcional)
1. True- Retorna el valor original
2. False- (Default) Retorna el valor actual
<>
Valor que retorna
String. Retorna NULL si el valor de la columna es NULL. Retorna cadena vacia("") si un
error ha ocurrido. Si valor de algún argumento es nulo, GetItemString retorna NULL.
Uso
Se usa GetItemString para conseguir información del buffers de un DataWindow .
Ejemplo:
En el ejemplo recupero de la fila cinco y columna "nombre_profesor" el nombre del
profesor . string ls_nombre
ls_nombre = dw_profesor.GetItemString(5,"nombre_profesor")
GetItemNumber()
Descripción
Recupera un dato numerico desde el buffer especificado de un control DataWindow o un
objeto DataStore. Puede obtener el dato que fue originalmente recuperado y almacenado en
la base de datos desde el buffer original.
Sintaxis
dwcontrol.GetItemNumber(fila,columna{,dwbuffer,originalvalue})
Argumento Description
El nombre del control DataWindow ,DataStore, o
child DataWindow en el cual ud. quiere obtener el
dwcontrol
dato numérico contenido en una fila y columna
especificada.
Un entero(long) cuyo valor sea la ubicación de la
row
fila del dato
La ubicación de la columna del dato. La Columna
column puede ser un numero(integer) o el nombre de la
cadena(string)
Un valor del dwBuffer enumerado por el tipo de
dwbuffer(opcional)
dato identificando el buffer del DataWindow
Un boolean indicando si ud. quiere el original o el
valor actuals para una fila y columna
originalvalue
1. True- Retorna el valor original
(opcional)
2. False- (Default) Retorna el valor actual
<>
Valor que retorna
Un tipo de dato numérico (decimal, double, integer, long, or real). Se diapara el evento
SystemError y retorna -1 si ha ocurrido un error. Si el valor de algún argumento es nulo,
GetItemNumber retorna NULL.
Uso
Se usa GetItemNumber para conseguir información del buffers de un DataWindow .
Ej : En el ejemplo recupero de la fila cinco y columna "cod_profesor" el código del
profesor . int li_numero
ls_numero = dw_profesor.GetItemNumber(5,"cod_profesor")
GetItemDate()
Descripción
Recupera un dato cuyo tipo es fecha desde el buffer especificado de un control
DataWindow o un objeto DataStore. Puede obtener el dato que fue originalmente
recuperado y almacenado en la base de datos desde el buffer original.
Sintaxis
dwcontrol.GetItemDate(fila,columna{,dwbuffer,originalvalue})
Argumento Description
El nombre del control DataWindow ,DataStore, o
child DataWindow en el cual ud. quiere obtener el
dwcontrol
dato de una fecha contenido en una fila y columna
especificada.
Un entero(long) cuyo valor sea la ubicación de la
row
fila del dato
La ubicación de la columna del dato. La Columna
column puede ser un numero(integer) o el nombre de la
cadena(string)
Un valor del dwBuffer enumerado por el tipo de
dwbuffer(opcional)
dato identificando el buffer del DataWindow
Un boolean indicando si ud. quiere el original o el
valor actuals para una fila y columna
originalvalue
1. True- Retorna el valor original
(opcional)
2. False- (Default) Retorna el valor actual
<>
Valor que retorna
Date. Retorna NULL si el valor de la columna es NULL. Retorna 1900-01-01 si ha
ocurrido un error. Si el valor de algún argumento es nulo, GetItemDate retorna NULL.
Uso
Se usa GetItemNumber para conseguir información del buffers de un DataWindow .
Ej : En el ejemplo recupero la fecha dela fila cinco y columna "cod_fecha" . date ld_fecha
ld_fecha = dw_profesor.GetItemdate(5,"cod_fecha")
RowCount()
Descripción
Obtiene el número de filas que están actualmente disponibles en un control DataWindow o
DataStore.
Sintaxis
dwcontrol.RowCount()
Argumento Description
El nombre del control DataWindow ,DataStore, o child
dwcontrol DataWindow en el cual ud. quiere el numero de filas
actualmente disponibles
Valor que Retorna
Long. Retornas el numero de filasque esta´n actualmente disponible en el dwcontrol, 0 si no
hay filas, y -1 si ha ocurrido un error. Si el dwcontrol es NULL, RowCount retorna NULL.
Uso
El Buffer primario para un control DataWindow o DataStore contiene las filas que están
disponibles actualmenste desplegadas o por impresora. Esta filas son contadaspor
RowCount. El número actualmente de filas disponibles es igual al número total de filas
recuperadas menos alñguna fila borrada más alguna fila que ha sido insertada ,menos
algunas filas que han sido flitradas.
Ejemplo : If dw_profesor.RowCount()=0
Then MessageBox("Información","No existen registros")
UpDate()
Descripción
Actualiza la Base de datos con los cambios hechos en el control DataWindow o dataStore.
Update puede además llamar a AcceptText a la fila y columna actual antes de actualizar la
base de datos.
Sintaxis
dwcontrol.Update({accept,resetflag})
Argumento Description
El nombre del control DataWindow ,DataStore, o child
dwcontrol DataWindow en el cual ud. quiere obtener que contiene la
información que ud. quiere usar para actualizar la base de
datos.
Un valor booleano especificando si el control DataWindow
o DataStore debería automáticamente realizar un
accept AcceptText antes de de realizar la actualización:
(opcional) l. TRUE (Default) Realiza AcceptText. La actualización
Falla si la validacion de los datos falla.
2. FALSE . No realiza el AcceptText
Un valor boleano especificando si dwcontrol debería
resetflag automáticamnete resetear las banderas de actualización:
(optional) l. TRUE- (Default) Resetea las banderas
2. FALSE- No resetea las banderas.
Valor que retorna
Integer. Retorna 1 si ha secudido correctamente -1 si ha ocurrido un error.
Si el valor del argumento es NULL, Update retorna NULL.
Uso
Ud. debe usar la función SetTrans o SetTransObject para especificar la connexión con la
base de datos antes de ejecutar la función Update.
Cuando usa SetTransObject, es la mas eficiente de las dos funciones, debe hacer su propia
transacción, en los cuales puede incluir la sentencias SQL COMMIT o ROLLBACK al
finalizar la actualización.
Ejemplo :
If dw_profesor.Update()= -1 Then
Rollback;
MessageBox("Error","No se pudo grabar",Exclamation!)
Else
Commit;
MessageBox("Información","Se pudo grabar con éxito")
End if
InsertRow()
Descripción
Inserta una fila en el control DataWindow o DataStore.
Sintaxis
dwcontrol.InsertRow(row)
Argumento Description
El nombre del control DataWindow ,DataStore, o child
dwcontrol
DataWindow en el cual ud. quiere insertar una fila.
Un identificador entero(long) de la fila antes que ud. inserte
row
la fila Inserta una fila al final si se especifica row=0.
Valor que retorna
Un Long(entero largo), que es el número de la fila que fue agregada si sucedió y -1 su
ocurrió un error. Si el valor del argumento es nulo, la función retorna nulo(NULL).
Uso
InsertRow simplemente inserta una fila sin cambiar el cursor a la fila que se inserta, para
desplazarse por la pantalla hasta la fila insertada se utiliza la función ScrollToRow o
simpelmente haga de la fila insertada la fila actual llamando a la función SetRow.
Ejemplo : En el ejemplo , cuando se pone parámetro de fila cero, se inserta una fila siempre
al último del datawindow.
int li_fila
li_fila = dw_profesor.InsertRow(0)
DeleteRow()
Descripción
Elimina una fila en el control DataWindow o DataStore.
Sintaxis
dwcontrol.DeleteRow(row)
Argumento Descripcion
El nombre del control DataWindow ,DataStore, o child
dwcontrol
DataWindow en el cual ud quiere borrar una fila.
Un identificador entero(long)de la fila que ud. quiere
row borrar.Borrar la fila actual se especifica con el valor 0 para
row
Valor que retorna
Un entero, retorna 1 si ha borrado satisfactoriamnete y -1 si ha ocurrido un error. Si el valor
del argumento es nulo, la función retorna nulo(NULL).
Uso
DeleteRow borra la fila del buffer primario del Datawindow.
La fila no es borrada de la tabla de la base de datos hasta que la aplicación llame a la
función Update.
Ejemplo : En el ejemplo , cuando se pone parámetro de fila.
If MessageBox("Confirmar","Eliminar registro?",Question!,YesNo!) = 1 Then
dw_profesor.DeleteRow(8)
End if
GetRow()
Descripción
Nos devuelve el valor de la fila actual en el control DataWindow
Sintaxis
dwcontrol.GetRow()
Argumento Description
El nombre del control DataWindow ,DataStore, o child
dwcontrol
DataWindow en el cual ud. quiere el numero de la fila actual
Valor que retorna
Un entero largo(Long), Retorna el nuemro de la fila actual en el dwcontrol.
Retorna 0 sila fila no es la actual y -1 si ha ocurrido un error. Si dwcontrol es Nulo,
GetRow returna NULL.
Ejemplo:
int li_fila
li_fila = dw_profesor.GetRow()
SetRow()
Descripción
Coloca la fila actual en el datawindow determinado por el valor de fila determinada.
Sintaxis
dwcontrol.SetRow(row)
Argumento Description
El nombre del control DataWindow ,DataStore, o child
dwcontrol<>
DataWindow en el cual ud. quiere colocar la fila actual
Valor que retorna
Un integer. Retorna 1 si ha sicedido correctamente y -1 si ha ocurrido un error. Si la fila es
menor que 1 o mayor que el numero de filas , SetRow falla. Si el valor del argumento es
NULL, SetRow retorna NULL.
Uso
SetRow mueve el cursor a la fila actual pero no se desplaza por el control DataWindow o
DataStore.
Eventos en los cuales SetRow podría dispararse:
• ItemChanged
• ItemError
• ItemFocusChanged
• RowFocusChanged
Ejemplo:
dw_profesor.SetRow(1), se ubica en la primera fila.
SetColumn()
Descripcion
Coloca la columna actual en el datawindow o dataStore.
Sintaxis
dwcontrol.SetColumn(column)
Argumento Description
El nombre del control DataWindow ,DataStore, o child
dwcontrol
DataWindow en el cual ud. quiere colocar la fila actual
La columna que ud quiere harcerla actual. Column puede ser
column un número de columna(integer) o el nombre de la
columna(string)
Valor que retorna
Un integer. Retorna 1 si ha sicedido correctamente y -1 si ha ocurrido un error. Si la fila es
menor que 1 o mayor que el numero de filas , SetColumn falla. Si el valor del argumento es
NULL, SetColumn retorna NULL.
Uso
SetColumn mueve el cursor a la columna actual pero no se desplaza por el control
DataWindow o DataStore.
Solamente una columna editable puede ser actualizada.(Una columna es editable cuando el
valor del tabulador(Order Tab) es mayor que 0.
Eventos en los cuales SetColumn podría dispararse:
• ItemChanged
• ItemError
• ItemFocusChanged
Ejemplo :
dw_profesor.SetRow("pro_codigo"), se ubica en la columna pro_codigo.
SetPointer()
Descripción
Coloca el puntero del mouse de la forma especificada.
Syntax
SetPointer (type)
Argumento Description
type Un valor del Puntero enumerado según el tipo de dato que
indica el tipo de puntero que usted desea. Los vaores son:
o Arrow!
o Cross!
o Beam!
o HourGlass!
o SizeNS!
o SizeNESW!
o SizeWE!
o SizeNWSE!
o UpArrow!
Uso
Se usa SetPointer para desplegar un Reloj de tiempo(hourglass) al inicio de un
script cuando el script toma un tiempo largo en ejecutarse.
type Arrow!(flecha) , HourGlass!(reloj) .etc..
Ejemplo : SetPointer(Arrow!)
NUEVAS HERRAMIENTAS DE
PRODUCTIVIDAD
Procesamiento Asíncrono de aplicaciones
El procesamiento asíncrono provee de un mecanismo para listar las
peticiones del procesamiento de una aplicación, y permite que el
cliente cancele el procesamiento de estas peticiones antes que este sea
terminado por el servidor.
PRODUCTIVIDAD EN EL DESARROLLO
En su versión 6.0, PowerBuilder continua agregando nuevas
capacidades funcionales, fáciles de usar que permiten incrementar la
productividad en el desarrollo.
Barra de Herramientas.
PowerBuilder 6.0 agregó nuevos botones a la barra de herramientas
para generar entradas al registro de Windows y para invocar la
herramienta de sincronización. PowerBuilder 6.0 implementa la
barra de herramientas planas como el estilo del nuevo Microsoft
Office97.
DataStore remoto.
DataWindows y DataStores del lado del cliente pueden ahora
intercambiar información desde un objeto tipo DataStore que esta
del lado del Servidor.
Arquitectura Abierta
PowerBuilder 6.0 continua incrementando su apertura hacia nuevas
tecnologías y esto incluye el soporte de nuevas plataformas, nuevas
interfaces de bases de datos, la adición de nuevos lenguajes y nuevas
tecnologías surgidas de los servidores de datos. Algunas de las
características mas relevantes son:
*************************************************************************
*****************