Sqlserver Powerbuilder SISTEMA MATRICULA
Sqlserver Powerbuilder SISTEMA MATRICULA
Sqlserver Powerbuilder SISTEMA MATRICULA
Entorno de Programacion: PowerBuilder Gestor de base de Datos: SQL Server Tecnologa de conexion: ODBC/DSN Software modelo: Gestion academica de matricula y notas
Ing. Oswaldo Navarrete Espejo Email: one21409746@hotmail.com Ica-Peru
Pgina 1
CONTENIDO
INTRODUCCIN POWRBUILDER Y SQL SERVER
Generalidades Principales caractersticas Datawindows Creacion de datawindows control con datawindows objeto Conexin ODBC/DSN Creacion de la base de datos Conexin a Microsoft Server Aspectos bsicos Instancia de SQL Server Quien es dbo? Que es cuenta de usuario? Conexin con las base de datos Profile de conexin Creacion del WorkSpace, la aplicacin y el script de conexin
Pgina 2
INTRODUCCION
Power Builder permite a los desarrolladores los beneficios de un desarrollo rpido de aplicaciones de Base de Datos basadas en Objetos, permitiendo aprovechar las ventajas de la arquitectura Cliente/Servidor y usar todas las facilidades del Graphic User Interface. (GUI). Las aplicaciones desarrolladas en Power Builder son independientes del sistema de administracin (DBMS) de Base de Datos (DB) que se est usando. Power Builder cuenta con comandos y funciones orientadas principalmente al manejo de bases de datos relacinales, pero adems cuenta con generadores de informes, pantallas, mens, consultas (SQL) y aplicaciones. El trabajo esta principalmente orientado al desarrollo de aplicaciones Cliente/Servidor con conectividad a Bases de Datos, al uso de comandos y funciones, siempre orientado hacia el desarrollo de aplicaciones de la vida real. En el desarrollo de un sistema informatico Cliente/Servidor en Power Builder, se necesita conocer el uso correcto de la sintaxis de conexin a la base de datos en el evento OPEN del desarrollo de la aplicacin, asi como tambin establecer las propiedades de conexin a bases de datos mediante el profile de bases de datos, el desarrollo y estructura de datawindows, asi como el manejo de la interfaz de usuario con el empleo de diversos controles de objetos y comandos Control de Datos y manejo de informacion, sin utilizacion de los Gestores y procesadores de Bases de Datos? En virtud del actual desarrollo de la Tecnologia informatica, el Control Computarizado de una Unidad Academica de un Centro Superior de Estudios constituye un proceso academico/administrativo de vital importancia en el procesamiento de datos que proyecte una administracion agil, oportuna, seria y responsable de la informacion academica de los alumnos, docentes y asignaturas de cualquier ao academico/ciclo. Y si el servicio informatico se brinda a traves de internet, se deduce que dicha Unidad Academica utiliza las herramientas informaticas en concordancia con las exigencias informaticas y computarizadas de la modernidad tecnologica del manejo administrativo de la Unidad Academica. En la mayoria de las unidades academicas de los Centros Superiores de Estudios existe aun el control manual de matriculas a traves de pre-fichas que estructura el alumno mediante una accion personal en las Oficinas administrativas con perdida de tiempo, tramites burocraticos y deficiencias en la atencion administrativas. No brindan informacion oportuna de los cursos, syllabus, docentes y carga lectiva y con la exigencia de tramites administrativos que se inicia en el Decanato, pasa a la Direccion Academica luego al Secretario Academico, al administrativo y finalmente llega la documentacion al docente para iniciar el retorno documentario
Pgina 3
Pgina 4
Generalidades
PowerBuilder es una herramienta de desarrollo de clase empresarial desarrollada por la empresa Sybase. PowerBuilder es orientada a objetos y permite el desarrollo de diferentes tipos de aplicaciones y componentes para arquitecturas cliente/servidor, distribuidas y Web. PowerBuilder es un entorno grafico de programacin que esta compuesto de diferentes herramientas que permiten el desarrollo rapido de aplicaciones. Con estas herramientas se pueden desarrollar aplicaciones Cliente / Servidor a traves de ODBC o Drivers Nativos para la Base de Datos. Una aplicacin Cliente/Servidor pone en comunicacin una estacion de trabajo con un Servidor de Bases de Datos Central. Este modelo consiste en utilizar una base de Datos que reside en una maquina separada denominada servidor. El software de gestion de Base de Datos se ubica en las estaciones de trabajo remotas (Clientes). Las aplicaciones que se ejecutan en las estaciones Cliente, acceden a los datos que se encuentran en el Servidor PowerBuilder es un software de aplicacin que se utiliza para desarrollar aplicaciones de manera rapida y usa tecnologas RAD como Cliente/Servidor y las iniciativas orientadas al Web PowerBuilder se usa como herramientas de desarrollo la cual utiliza y manipula datos de una o varias bases de datos a la vez de diferentes fabricantes de gestion de bases de datos relacionales. Para ello debe conectarse a la base de datos utilizando una conexin para cada base de datos. En Power Builder se pueden crear aplicaciones no solo para Windows, sino tambien para UNX y MACINTOSH. Power Builder es un producto SYBASE, el cual viene acompaado de una base de datos relacional de nombre ANYWHERE Power Builder soportA multi plataformas desarrolladas y desplegadas
Principales caractersticas
Caractersticas basicas de Power Builder
. Soporte una gran variedad de sistemas de gestion de base de datos, tales como Sybase, Oracle, Sql Server, Dbase(dbf), entre otras . Tiene capacidad de acceder a informacin de multiples bases de datos y mostrar esta informacin en una unica ventana . Se trabaja en un ambiente cliente / servidor . Posee un objeto inteligente llamado DataWindows que realiza directamente la interfaz con la base de datos sin requerir que el programador conozca SQL . Capacidad de utilizar sentencias SQL combinadas en el codigo . Se puede trabajar en multiples plataformas ya que soporta diferentes sistemas operativos y posee drivers nativos para las bases de datos mas comerciales . La creacin de aplicaciones es sencilla . Se realiza poca programacin
Pgina 5
PowerBuilder incluye, dentro de su ambiente integrado de desarrollo, herramientas para crear la interfaz de usuario, generar reportes y tener acceso al contenido de una base de datos. PowerBuilder tambin incluye un lenguaje de programacin llamado Powerscript, el cual es usado para especificar el comportamiento de la aplicacin en respuesta a eventos del sistema o del usuario, tal como cerrar una ventana o presionar un botn. Las aplicaciones desarrolladas con PowerBuilder se ejecutan exclusivamente en el sistema operativo Microsoft Windows, aunque cierto tipo de componentes que no incluyen una interfaz de usuario (llamados componentes no visuales o NVOs) y que encapsulan slo lgica de aplicacin, se pueden ejecutar en otros sistemas operativos como Unix, usando la "Mquina Virtual de PowerBuilder" o PBVM incluida dentro del servidor de aplicaciones EAServer de Sybase. Adicionalmente, PowerBuilder posee un objeto nativo para la gestin de datos llamado DataWindow, el cual puede ser usado para crear, editar y visualizar datos de una base de datos. Este objeto patentado por Sybase da al desarrollador un conjunto amplio de herramientas para especificar y controlar la apariencia y comportamiento de la interfaz de usuario, y tambin brinda acceso simplificado al contenido de la base de datos. Hasta cierto punto, el DataWindow libera al programador de las diferencias entre sistemas de gestin de base de datos de diferentes proveedores. Recientemente, Sybase introdujo al mercado el DataWindow.NET, un componente que extiende las bondades del DataWindow y acelera el rendimiento de aplicaciones en ambientes de desarrollo .NET.
Datawindows
Es una tecnologa patentada por Sybase, permite acelerar el desarrollo de aplicaciones y provee capacidades de acceso a datos, de validacin y de actualizacin. En resumen, el DataWindow es un objeto de PowerBuilder que permite interactuar con una base de datos. Caractersticas
Incorpora ms de 200 funciones y eventos, ya previamente incorporados dentro del DataWindow. Soporte para formato y validacin de campos. Puede ser manejado por Base de Datos o por fuentes externas. Se puede incorporar tanto en Objetos Visuales como en Objetos No-Visuales. Los DataWindows no slo se pueden utilizar en aplicaciones Cliente/Servidor sino que tambin se pueden utilizar para crear aplicaciones Web que se realicen con PowerBuilder.
Es la caracterstica mas importante del Power Builder. El DataWindows es la forma en que sus aplicaciones presentan los datos de la base de datos y quizas incluso datos no especficamente de una base de datos al usuario final, DataWindows pueden ser pantalla de consulta, formato de entrada de datos, reporte de impresin,etc. Un Datawindows es un objeto visual de acceso a los datos Basicamente este pintor genera una representacin visual de una sentencia sql de tipo select Un Datawindows es un objeto que se usa para recuperar, presentar y manipular datos de una base de datos relacional u otra fuente de datos
Pgina 6
Diseo de un Datawindows
1. 2. El primer paso consiste en seleccionar la opcin New. De inmediato insurge la pantalla New que permite definir el tipo de presentacion
En esta pantalla elegimos el estilo de presentacin del Datawindows (por ejemplo podemos utilizar el tipo GRID) 3. Escoger un Data Source para el objeto Datawindow en la pantalla siguiente (Por ejemplo se puede escoger la fuente de datos SQL Select):
4. 5.
Ejecutamos click en Next En la siguiente pantalla elegimos la tabla que queremos manejar con el Datawindows
Pgina 7
6.
Seleccionada la tabla ejecutamos click en Open. Insurge la siguiente pantalla con los campos del Datawindows
7.
Una vez seleccionados los campos de la tabla de trabajo del Datawindows retornamos a de configuracin de la presentacin del objeto
Pgina 8
Ejecutamos click en Next 8. Visualizamos la siguiente pantalla con las caractersticas del Datawindows
Pgina 9
9.
Pgina 10
Opcion ROWS
Update Properties
Al ejecutar click en la subopcion Update properties insurge la siguiente pantalla que nos permite especificar las propiedades de actualizacin de datos
Pgina 11
Pgina 12
Para crear un datawindows control con un datwindows objeto ejecutamos los siguientes pasos: 1. Ejecutar clic en la opcin NEWS
Pgina 13
3.
Se presenta la interfaz de usuario (ventana Windows) y en ella insertamos el datawindows object, para lo cual seleccionamos la opcin INSERT, luego CONTROL y en la pantalla de objetos seleccionamos DATAWINDOWS. La siguiente grafica ilustra lo mencionado:
4.
Insertamos el datawindows objeto en la ventana Windows y luego se definen las propiedades del data Windows objeto. Para ello ejecutamos click derecho y seleccionamos propiedades, inmediatamente fijamos el nombre de la ventana control y el datawindows objeto que debemos trabajar
Pgina 14
5.
Finalizado la creacin de un datawindows control con un datawindows objeto, se proceda a desarrollar el script del evento OPEN para conectar el datawindows con la base de datos, y limpiar el bufer del datawindows y editar el SQL del datawindows. Se trae la informacin (retrieve()) de la consulta que esta en el datawindows objeto
Las funciones principales de un Datawindows son: SetTransObject. Hace que un control DataWindows use un objeto de transaccin especificado por el programador. El objeto de transaccin proporciona la informacin necesaria para comunicarse con la Base de Datos. Retorna 1 si ha ocurrido un error. Sirve para conectar tu dw con la BD Retrieve(). Trae la informacin de la consulta que esta en el datawindows object
Pgina 15
CREACION DE LA BASE DE DATOS CON SQL SERVER 2005 MICROSOFT SQL SERVER 2005
Microsoft SQL Server es un sistema para la gestin de bases de datos producido por Microsoft basado en el modelo relacional. Sus lenguajes para consultas son T-SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle o PostgreSQL o MySQL. Caractersticas de Microsoft SQL Server
Soporte de transacciones. Escalabilidad, estabilidad y seguridad. Soporta procedimientos almacenados. Incluye tambin un potente entorno grfico de administracin, que permite el uso de comandos DDL y DML grficamente. Permite trabajar en modo cliente-servidor, donde la informacin y datos se alojan en el servidor y los terminales o clientes de la red slo acceden a la informacin. Adems permite administrar informacin de otros servidores de datos.
Este sistema incluye una versin reducida, llamada MSDE con el mismo motor de base de datos pero orientado a proyectos ms pequeos, que en sus versines 2005 y 2008 pasa a ser el SQL Express Edition, que se distribuye en forma gratuita. Para el desarrollo de aplicaciones ms complejas (tres o ms capas), Microsoft SQL Server incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el servidor slo est disponible para Sistemas Operativos Windows.
Pgina 16
SQL Server esta diseado para operar de forma eficiente en varios entornos: - Como sistema de base de datos cliente-servidor de dos estratos o de varios estratos - Como sistema de bases de datos de escritorio Los sistemas cliente-servidor estan construidos de tal modo que la base de datos puede residir en un equipo central llamado servidor y ser compartida por varios usuarios. Los usuarios tienen acceso al servidor a traves de una aplicacin de cliente o de servidor. En un sistema cliente-servidor de dos estratos, los usuarios ejecutan una aplicacin en su equipo local, llamado cliente, que se conecta a traves de la red con el servidor que ejecuta SQL Server. La aplicacin de cliente ejecuta las reglas de la compaa y el codigo necesario para presentar el resultado al usuario. Tambien se conoce como cliente amplio - En un sistema cliente-servidor de varios componentes, la logica de la aplicacin de cliente se ejecuta en dos ubicaciones: El cliente reducido se ejecuta en el equipo local del usuario y se encarga de presentar resultados al usuario La logica de la compaa se encuentra en aplicaciones de servidor que se ejecutan en un servidor. Los clientes reducidos solicitan funciones a la aplicacin de servidor, a su vez, es una aplicacin multiproceso capaz de operar con varios usuarios.
Pgina 17
Conexin a Microsoft SQL Server 2005 Database Engine (Motor de base de datos de SQL Server 2005). Aspectos bsicos
Para la conexion a Sql Server debemos tener en cuenta tres aspectos: Tipo de Servidor, Nombre del servidor y Autenticacion. Tipo de servidor Al registrar un servidor desde el Explorador de objetos, seleccione el tipo de servidor al que se conectar: Database Engine (Motor de base de datos), Analysis Services, Reporting Services, SQL Server Mobile o Integration Services. El resto del cuadro de dilogo muestra simplemente las opciones que se aplican al tipo de servidor seleccionado. Cuando se registra un servidor desde Servidores registrados, el cuadro Tipo de servidor es de slo lectura y coincide con el tipo de servidor que se muestra en el componente Servidores registrados. Para registrar un tipo distinto de servidor, seleccione Database Engine (Motor de base de datos), Analysis Services, Reporting Services, SQL Server Mobile o Integration Services desde la barra de herramientas Servidores registrados antes de comenzar a registrar un nuevo servidor.
Nombre del servidor Seleccione la instancia de servidor a la que va a conectarse. De forma predeterminada, aparecer la instancia de servidor a la que se ha conectado por ltima vez. Nota: Para conectarse a una instancia de usuarios activos de SQL Server 2005 Express Edition, utilice el protocolo de canalizaciones con nombre que especifica el nombre de canalizacin, tal como np:\\.\pipe\3C3DF6B1-2262-47\tsql\query. Para obtener ms informacin, vea la documentacin de SQL Express. Autenticacin Dispone de dos modos de autenticacin al conectarse a una instancia del Database Engine (Motor de base de datos): Modo de autenticacin de Windows (autenticacin de Windows) El modo de autenticacin de Microsoft Windows permite al usuario conectarse mediante una cuenta de usuario de Windows. Autenticacin de SQL Server Cuando un usuario se conecta con un nombre y una contrasea de inicio de sesin determinados desde una conexin no confiable, SQL Server realiza la autenticacin y comprueba si se ha configurado una cuenta de inicio de sesin de SQL Server y si la contrasea especificada coincide con la almacenada anteriormente. Si SQL Server no tiene configurada una cuenta de inicio de sesin, la autenticacin no se realizar correctamente y el usuario recibir un mensaje de error. Nombre de usuario Escriba el nombre de usuario con el que se va a conectar. Esta opcin slo est disponible si ha seleccionado la autenticacin de Windows para conectarse. Inicio de sesin Escriba el inicio de sesin con el que va a conectarse. Esta opcin slo est disponible si ha seleccionado la autenticacin de SQL Server para conectarse. Contrasea Escriba la contrasea del inicio de sesin. Esta opcin slo es editable si ha seleccionado la autenticacin de SQL Server para conectarse. Conectar Haga clic aqu para conectarse al servidor seleccionado anteriormente.
Pgina 18
Como se conecta Microsoft SQL Server Management Studio con la base de datos? En el presente trabajo la conexin es la siguiente:
En el trabajo con el Gestor de Bases de Datos SQL Server debemos tener en cuenta tres aspectos importantes: Instancia de SQL Server dbo Cuenta de Usuario
Pgina 19
Pgina 20
Una cuenta de usuario es una coleccin de informacin que indica a Windows los arhivos y carpetas a los que puede obtener acceso, los cambios que puede realizar en el equipo y las preferencias personales. Las cuentas de usuario permiten que se comparta el mismo equipo entre varias personas, cada una de las cuales tiene sus propios archivos y configurciones. Cada persona obtiene acceso a su propia cuenta con un nombre de usuario y contrasea
NOMBRE DEL SISTEMA: PC4 (Pc de sistema) NOMBRE DEL DOMINIO: PC4 NOMBRE DEL SERVIDOR: PC4\SQLEXPRESS AUTENTICACION: AUTENTICACION DE WINDOWS NOMBRE DE USUARIO: PC4/OSWALDO
Pgina 21
b. Conectar a SQL Server con ODBC El mtodo tradicional para conectar una base de datos es a traves de ODBC, y existen tres maneras para hacer esto. Guardando la informacin en el registro de Windows, en un archivo de texto o dentro del string de conexin mismo. Crear un DSN de Sistema para Microsoft SQL Antes de crear el script para almacenar la informacin de la conexin en el registro de Windows es necesario crear un DSN de Sistema. 1) Ejecutar el administrador de datos ODBC, dentro del panel de control. 2) Una vez adentro seleccionar DSN de Sistema o System DSN. 3) Presionar Agregar o Add, seleccionar SQL Server Driver y presionar Fin o Finish. 4) Ingresar un nombre (por ejemplo; miDns) y una descripcin, y despus seleccionar el Servidor o Server, al cal se necesita conectar. Si el SQL Server esta localizado sobre alguna mquina con IIS (Internet Informatin Server), hay que seleccionar Local. Si en cambio, el Servidor esta localizado sobre Internet, hay que ingresar una direccin IP o un nombre de dominio o domain name. 5) Seleccionar el mtodo de autenticacin. Presionar Next o Prximo 3 veces para para evitar las prximas 2 pantallas.
Pgina 22
Pgina 23
b. Conectar a SQL Server con ODBC El mtodo tradicional para conectar una base de datos es a traves de ODBC, y existen tres maneras para hacer esto. Guardando la informacin en el registro de Windows, en un archivo de texto o dentro del string de conexin mismo. Crear un DNS de Sistema para Microsoft SQL Antes de crear el script para almacenar la informacin de la conexin en el registro de Windows es necesario crear un DNS de Sistema. 1) Ejecutar el administrador de datos ODBC, dentro del panel de control. 2) Una vez adentro seleccionar DSN de Sistema o System DSN. 3) Presionar Agregar o Add, seleccionar SQL Server Driver y presionar Fin o Finish. 4) Ingresar un nombre (por ejemplo; miDns) y una descripcin, y despus seleccionar el Servidor o Server, al cal se necesita conectar. Si el SQL Server esta localizado sobre alguna mquina con IIS (Internet Informatin Server), hay que seleccionar Local. Si en cambio, el Servidor esta localizado sobre Internet, hay que ingresar una direccin IP o un nombre de dominio o domain name. 5) Seleccionar el mtodo de autenticacin. Presionar Next o Prximo 3 veces para para evitar las prximas 2 pantallas. 6) Finalmente se puede testear la nueva conexin, si todo salio bien, el nuevo DSN de Sistema o System DSN, ah sido creado. Para utilizar esta conexin dentro de las pginas ASP o mediante otro medio (CGI por ejemplo) es necesario ingresar un script como este, en este caso para pginas ASP. Crear un DNS de Archivo para Microsoft SQL Server En lugar de almacenar la informacin de la conexin en el Windows Registry, como en el ejemplo anterior, es posible guardar esta informacin en un archivo de texto, creando un File DSN o DSN de Archivo. Para crear este archivo, hay que como siempre, abrir la fuente de datos ODBC, seleccionar File DSN o DSN de Archivo, presionar Agregar o Add y especficar el nombre y un lugar donde ser almacenado el archivo que contendr la informacin de la conexin. Los pasos que siguen son idnticos al ejemplo anterior.
Pgina 24
Pgina 25
Elegimos el controlador SQL Native Client y luego Finalizar Aparece la siguiente ventana
En esta ventana sealamos el nombre del origen de datos, tambin una descripcin del origen de datos y el nombre del servidor, que en nuestro caso particular por ser un dbo empleamos PC4\SQLEXPRESS Luego se comprueba la autenticidad del ID de inicio
Pgina 26
En la siguiente ventana de crear un nuevo origen de datos para SQL Server, fijamos el nombre de la base de datos
Pgina 27
Ejecutamos click en Finalizar y en la nueva ventana Configuracion de ODBC se ven los detalles de creacin de un nuevo origen de datos ODBC
Para seguridad de que el DSN de ODBC nos permite la conexin a la base de datos ejecutamos click en la opcin Probar origen de datos Ejecutamos click en Aceptar y en la ventana Administrador de orgenes de datos apreciamos el DSN creado
Pgina 28
Pgina 29
PROFILE DE CONEXION
Qu es un database profile?. Es el enlace que utilizarn los painters del entorno PowerBuilder a la base de datos. Con esta herramienta es posible configurar las conexiones a las bases de datos que vamos a utilizar en tiempo de desarrollo.
DbProfile
Ejecutamos click en la opcin DB Profile e ingresamos a la ventana Database Profiles, tal como se muestra en la siguiente imagen
Pgina 30
En esta ventana Database Profiles elegimos la opcin ODB ODBC y luego click en New para ingresar a la ventana del setup ODBC que se muestra a continuacin
En esta ventana debemos definir las siguientes caractersticas de la conexin a la base de datos: Profile Name Data Source User ID Password
Pgina 31
luego News. Aparece la ventana News en la cual seleccionamos WorkSpace y luego OK.
Pgina 32
6
Propiedades de la Aplicacin Tpico General Descripcin Permite obtener informacin del objeto aplication. Permite definir caractersticas de presentacin visual de elementos. Permite definir el icono de la aplicacin. Permite conocer las variables globales por defecto y su tipo. Permite declarar las libreras que conforman la aplicacin.
Font
Icon
Variable
Libraries
Para crear la aplicacion ejecutamos click en File de las opciones principales y luego News. Aparece la ventana News y selecionamos Target, Application y luego OK
Inmediatamente despus de ejecutar click en OK insurge la ventana Specify News Aplication and Library, tal como apreciamos a continuacion
Pgina 33
En esta ventana digitamos el Nombre de la Aplicacin, la Librera y el destino. Luego ejecutamos click en Finish De esta manera se ha creado el workspace y la aplicacin. Podemos visualizar este espacio de trabajo para nuestra aplicacion ingresando a Power Builder y ejecutando el workspace creado visualizando la siguiente pantalla donde ya se ha establecido la aplicacin Script de la aplicacion En el evento Open procedemos a ejecutar el script de la aplicacin para la conexin con la base de datos utilizando el DSN ODBC creado anteriormente
SQLCA.DBMS="ODBC" SQLCA.AutoCommit=False SQLCA.DBParm="ConnectString='DSN=pbsqlodbc;UID=;PWD='" connect Using sqlca; //connect; //preguntamos si ha ocurrido un error en la conexion if sqlca.sqlcode<>0 then Messagebox("Error de conexion",sqlca.sqlErrText) halt else // Messagebox("conexion exitosa",sqlca.sqlErrText) open(w_principal) end if
Pgina 34
SQLCA
El objeto de transaccin por defecto se llama SQLCA, que significa rea de comunicaciones SQL. SQLCA tiene 15 propiedades, de las cuales 10 se utilizan para conectarse a su base de datos. Una de las 10 propiedades de la conexin es DBMS. La propiedad DBMS contiene el nombre de la base de datos a la que desea conectarse. El SQLCA es por defecto el objeto transaccion que se utiliza en Datawindows o DataStore e inclusive en sentencias SQL, el proposito de este objeto es el de comunicar su sentencia sql, datawindow o datastore con la base de datos. El SQLCA es el objeto transacsacional que se encarga de controlar la conexin a la base de datos. Cada vez que se hace una operacin sobre la base de datos el SQLCA, contiene el resultado final de esta operacin. Algunas de las consultas u operaciones que se pueden ejecutar sobre la base de datos son las siguientes: Insert, Select, Delete, Update y otras. Si el SQLCA.Code (indicador del resultado de la operacin), fue mayor a cero, significa que algn error ocurri durante la consulta. Cul error?, pues el nmero que contenga el SQLCA.Code. En el caso de que este sea 100, significa que la consulta fue correcta, pero no se logr obtener informacin. Por eso generalmente se utiliza la siguiente instruccin luego: Messagebox('ERROR('+String(SQLCA.SQLCode)+')', 'ERROR INTERNO: '+SQLCA.SQLErrText) Ah te dar el nmero del error y el mensaje generado por la base de datos. Ahora bien, si se logr conseguir la informacin depende de varias cosas. Primero, que no se haya producido error, segundo, que se haya podido recuperar alguna informacin vlida. Para el caso: Select tb_in_lista_precios.precio,
Pgina 35
Script de conexin creando el objeto de transaccin El cdigo para conectarse es el siguiente: / /te creas una variable de instancia i_sqlca transaction i_sqlca i_sqlca = CREATE Transaction // CONEXION CON LA BD i_sqlca.DBMS = "ODBC" i_sqlca.AutoCommit = False i_sqlca.DBParm = "Connectstring=DSN=nombre_dsn" //nombre_dsn es el nombre odbc creado 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
Pgina 36
Pgina 37
contrasea
driver_specific_parameters (Opcional) Cualquier otra especfica del controlador parmetros necesarios para conectar
Edicin del perfil de base de datos cuadro de dilogo Configuracin de la conexin en el entorno de desarrollo Especificacin de los parmetros de conexin en un script de la aplicacin
Pgina 38
(Recomendado) Copia de la sintaxis PowerScript DBParm de la ficha Vista previa en el cuadro de dilogo Configuracin de perfil de base de datos en la secuencia de comandos Codificacin PowerScript para establecer los valores de la propiedad DBParm del objeto de transaccin Lectura de valores DBParm de un archivo de texto externo
Copia de la sintaxis DBParm fromthe ficha Vista previa La forma ms fcil de especificar los parmetros de DBParm en un script de aplicacin PowerBuilder es copiar la sintaxis DBParm PowerScript de la ficha Vista previa en el cuadro de dilogo Configuracin de perfil de base de datos en su guin, la modificacin de la transaccin por defecto el nombre del objeto (SQLCA) si es necesario. Como se establecen los parmetros DBParm en el cuadro de dilogo Configuracin de perfil de base de datos en el entorno de desarrollo, PowerBuilder genera la sintaxis correcta conexin de la ficha Vista previa. Por lo tanto, la copia de la sintaxis directamente desde la ficha Vista previa asegura que se utiliza la sintaxis correcta PowerScript DBParm en el script. Para copiar la sintaxis DBParm de la ficha Vista previa en el script:
1.
En una o ms pginas de ficha en el cuadro de dilogo Configuracin de perfil de base de datos para su conexin, los valores de los parmetros de suministro de DBParm desea establecer. Por ejemplo, en la ficha Red en la configuracin del perfil de base de datos - Adaptive Server
Pgina 39
Para obtener informacin sobre los parmetros DBParm para su interfaz y los valores para el suministro, haga clic en Ayuda. 2. Haga clic en Aplicar para guardar los cambios a la ficha actual sin cerrar el perfil de base de datos de cuadro de dilogo Configuracin.
Pgina 40
En Powerbuilder es posible realizar la conexin a la fuente de datos, sin necesidad de definir un DSN del sistema y se logra definiendo la propiedad DBParm. Ej. Si deseamos conectar la aplicacin a un DBF, el cdigo sera el siguiente
SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq="+gs_path+"\bd;'"
Pgina 41
De forma similar, sera posible realizar la conexin a cualquier fuente de datos, si se especifica de forma correcta el connectionstring en el DBParm.
Powerbuilder y Mysql Conexin a Mysql desde Powerbuilder SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "ConnectString='DRIVER={MySQL ODBC 3.51 Driver};SERVER="+servidor+";PORT=3306;DATABASE=mibase;USER=miuser;PA SSWORD=mipass;OPTION=135168;',DisableBind=1" Connect using SQLCA; Notas:
1) La opcin utilizada en el connectionstring OPTION=135168, es especial para que powerbuilder funcione sin problemasen en el manejo de sus Datawindows y en el Powerscript 2) La opcion DisableBind=1 hace que no se verifique el tamao de una columna y el tamao en el Datawindow, si no se agrega esta opcin, la aplicacin es muy probable que funcione sin tener ningn problema, pero si en la base se datos se cambia algn tamao en alguna columna que aparece en el Datawindow, entonces si marcar un error porque los tamaos seria diferentes y es precisamente el DisableBind=1, lo que hace que no se cheque esto.
Pgina 42
Pgina 43
Programacion en PowerBuilder y Sql Server ESTRUCTURA Y CODIGOS FUENTES DE FORMULARIOS Windows w_clave
Evento Open
sle_clave.password=true llenausuario( )
(Functions) llenausuarios
string cod,usu,cla declare lista cursor for select COD_USU,USUARIO,CLAVE from SISTEMA; open lista; fetch lista into :cod,:usu,:cla; do while sqlca.sqlcode<>100 ddlb_usuario.additem( usu); fetch lista into :cod,:usu,:cla; loop close lista;
cb_1 Ingresar
string cod,usu,cla intento=intento+1 if len(ddlb_usuario.text)<>0 and len(sle_clave.text)<>0 then select COD_USU,USUARIO,CLAVE into :cod,:usu,:cla from SISTEMA where USUARIO=:ddlb_usuario.text; if usu=upper(ddlb_usuario.text) and trim(cla)=upper(trim(sle_clave.text)) then open(w_principal) close(w_clave) elseif intento=3 then messagebox("Seguridad","Se agotaron los intentos") halt else messagebox("Seguridad","Clave incorrecta") ddlb_usuario.reset( ) llenausuario( )
Pgina 44
cb_2 Cancelar
halt
ddlb_usuario - Dropdownlistbox
Sle_clave
Pgina 45
Para disear el men principal ejecutamos clic en FILE del powerbar, luego NEWS, PBObject, seleccionamos MENU y finalmente OK En la ventana de diseo del men, creamos las siguientes opciones: Generacion de las opciones y subopciones
Pgina 46
Botones de comandos cb
Boton de comando AGREGAR: cb_1 Evento clicked sle_1.text="" sle_2.text="" sle_1.text="" sle_2.text="" sle_3.text="" sle_4.text="" sle_5.text="" sle_6.text="" sle_7.text="" sle_8.text="" sle_9.text="" sle_10.text="" sle_11.text="" sle_12.text="" sle_13.text="" sle_14.text="" sle_15.text="" sle_16.text="" sle_17.text="" sle_1.enabled=TRUE sle_2.enabled=TRUE sle_3.enabled=TRUE sle_4.enabled=TRUE sle_5.enabled=TRUE sle_6.enabled=TRUE sle_7.enabled=TRUE sle_8.enabled=TRUE sle_9.enabled=TRUE sle_10.enabled=TRUE
Pgina 47
Pgina 48
Boton de commando SALIR: cb_5 Evento clicked close(w_asignatura) Cuadro de edicin CODIGO: sle_1 Evento modified if cb_6.enabled=true or cb_7.enabled=true then sle_2.enabled=TRUE sle_3.enabled=TRUE sle_4.enabled=TRUE sle_5.enabled=TRUE sle_6.enabled=TRUE sle_7.enabled=TRUE sle_8.enabled=TRUE sle_9.enabled=TRUE sle_10.enabled=TRUE sle_11.enabled=TRUE sle_12.enabled=TRUE sle_13.enabled=TRUE sle_14.enabled=TRUE sle_15.enabled=TRUE sle_16.enabled=TRUE sle_17.enabled=TRUE end if if cb_7.enabled=true or cb_8.enabled=true then string c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17
Pgina 49
Boton de commando GRABAR: cb_6 Evento clicked insert into ASIGNAT (dcodcu,dnomcu,anio,codfac,facultad,dcodeap,escuela,semes,nroasi,nhorast,nhorasp,nhorass,nhorasl,nh oras,creditos,prereq,nparciales) values(:sle_1.text,:sle_2.text,:sle_3.text,:sle_4.text,:sle_5.text,:sle_6.text,:sle_7.text,:sle_8.text,:sle_9.text,: sle_10.text,:sle_11.text,:sle_12.text,:sle_13.text,:sle_14.text,:sle_15.text,:sle_16.text,:sle_17.text); sle_1.text="" sle_2.text="" sle_3.text="" sle_4.text="" sle_5.text="" sle_6.text="" sle_7.text="" sle_8.text="" sle_9.text="" sle_10.text="" sle_11.text="" sle_12.text="" sle_13.text="" sle_14.text="" sle_15.text="" sle_16.text="" sle_17.text="" sle_1.enabled=FALSE sle_2.enabled=FALSE sle_3.enabled=FALSE sle_4.enabled=FALSE sle_5.enabled=FALSE sle_6.enabled=FALSE sle_7.enabled=FALSE sle_8.enabled=FALSE sle_9.enabled=FALSE sle_10.enabled=FALSE sle_11.enabled=FALSE sle_12.enabled=FALSE sle_13.enabled=FALSE
Pgina 50
Boton de comando ACTUALIZAR: cb_7 Evento clicked Update ASIGNAT set dnomcu=:sle_2.text,anio=:sle_3.text,codfac=:sle_4.text,facultad=:sle_5.text,dcodeap=:sle_6.text,escuela=: sle_7.text,semes=:sle_8.text,nroasi=:sle_9.text,nhorast=:sle_10.text,nhorasp=:sle_11.text,nhorass=:sle_1 2.text,nhorasl=:sle_13.text,nhoras=:sle_14.text,creditos=:sle_15.text,prereq=:sle_16.text,nparciales=:sle_1 7.text where dcodcu=:sle_1.text; sle_1.text="" sle_2.text="" sle_3.text="" sle_4.text="" sle_5.text="" sle_6.text="" sle_7.text="" sle_8.text="" sle_9.text="" sle_10.text="" sle_11.text="" sle_12.text="" sle_13.text="" sle_14.text="" sle_15.text="" sle_16.text="" sle_17.text="" sle_1.enabled=FALSE sle_2.enabled=FALSE sle_3.enabled=FALSE sle_4.enabled=FALSE sle_5.enabled=FALSE sle_6.enabled=FALSE sle_7.enabled=FALSE sle_8.enabled=FALSE sle_9.enabled=FALSE sle_10.enabled=FALSE sle_11.enabled=FALSE sle_12.enabled=FALSE sle_13.enabled=FALSE sle_14.enabled=FALSE sle_15.enabled=FALSE sle_16.enabled=FALSE sle_17.enabled=FALSE cb_1.enabled=true cb_2.enabled=true cb_3.enabled=true cb_6.enabled=false cb_7.enabled=false cb_8.enabled=false Close(w_asignatura)
Pgina 51
Botones de comandos cb
Pgina 52
Pgina 53
Boton de comando ELIMINAR: cb_3 Evento clicked sle_1.text="" sle_2.text="" sle_3.text="" sle_4.text="" sle_5.text="" sle_6.text="" sle_7.text="" sle_8.text="" sle_9.text="" sle_10.text="" sle_11.text="" sle_12.text="" sle_13.text="" sle_14.text="" sle_15.text="" sle_16.text="" cb_1.enabled=false cb_2.enabled=false cb_3.enabled=false cb_4.enabled=true sle_1.enabled=TRUE cb_8.enabled=TRUE sle_1.setfocus( ) Boton de comando CONSULTA: cb_4 Evento clicked open(w_consualu1)
Cuadro de edicin CODIGO: sle_1 Evento modified if cb_6.enabled=true THEN sle_2.enabled=TRUE sle_3.enabled=TRUE sle_4.enabled=TRUE sle_5.enabled=TRUE
Pgina 54
Pgina 55
Boton de comando ACTUALIZAR: cb_7 Evento clicked Update ALUMNO set dnomalu=rtrim(:sle_2.text),sexo=:sle_3.text,fecnac=rtrim(:sle_4.text),distr=rtrim(:sle_5.text),prov=rtrim(:sle _6.text),dep=rtrim(:sle_7.text),le=rtrim(:sle_8.text),direcc=rtrim(:sle_9.text),colpro=:sle_10.text,colubi=rtrim( :sle_11.text),tele=rtrim(:sle_12.text),anioing=rtrim(:sle_13.text),dcodeap=rtrim(:sle_14.text),eap=rtrim(:sle_ 15.text),perion=rtrim(:sle_16.text) where rtrim(dcodalu)=rtrim(:sle_1.text); sle_1.text="" sle_2.text="" sle_3.text="" sle_4.text="" sle_5.text="" sle_6.text="" sle_7.text="" sle_8.text="" sle_9.text="" sle_10.text="" sle_11.text="" sle_12.text="" sle_13.text="" sle_14.text="" sle_15.text="" sle_16.text="" sle_1.enabled=FALSE sle_2.enabled=FALSE sle_3.enabled=FALSE sle_4.enabled=FALSE sle_5.enabled=FALSE sle_6.enabled=FALSE sle_7.enabled=FALSE
Pgina 56
Boton de comando BORRAR: cb_8 Evento clicked delete from alumno where dcodalu=:sle_1.text; sle_1.text="" sle_2.text="" sle_3.text="" sle_4.text="" sle_5.text="" sle_6.text="" sle_7.text="" sle_8.text="" sle_9.text="" sle_10.text="" sle_11.text="" sle_12.text="" sle_13.text="" sle_14.text="" sle_15.text="" sle_16.text="" cb_1.enabled=true cb_2.enabled=true cb_3.enabled=true cb_4.enabled=true cb_5.enabled=true cb_6.enabled=false cb_7.enabled=false cb_8.enabled=false close(w_alumnos) ------------------------------------------------------------------------------------------------------------------------------------------
Pgina 57
dw_1 dw_cargalec
dw_2 dw_docentes
Boton de comando AGREGAR: cb_1 Evento clicked cb_1.enabled=false cb_2.enabled=false cb_3.enabled=false sle_1.enabled=True sle_1.setfocus()
Pgina 58
Boton de comando SELECCIONAR: cb_4 Evento clicked sle_16.enabled=TRUE sle_17.enabled=TRUE sle_18.enabled=TRUE sle_19.enabled=TRUE sle_20.enabled=TRUE sle_21.enabled=TRUE sle_22.enabled=TRUE cb_4.enabled=FALSE sle_1.Enabled=FALSE cb_5.enabled=TRUE cb_6.enabled=TRUE cb_7.enabled=TRUE st_27.visible=TRUE sle_16.setfocus()
Cuadro de edicin CODIGO: sle_16 Evento keya if trim(sle_16.text)='' then if keydown(27) then open(w_consuasig1) End if End if if keydown(keyenter!) then string vdcodcu,vdnomcu,vcreditos,vnhoras select dcodcu,dnomcu,creditos,nhoras into :vdcodcu,:vdnomcu,:vcreditos,:vnhoras from asignat where dcodcu=:sle_16.text; sle_16.text=vdcodcu sle_17.text=vdnomcu sle_20.text=vcreditos sle_19.text=vnhoras cb_5.enabled=True cb_6.enabled=True
Pgina 59
Boton de comando MIGRAR: cb_5 Evento clicked dw_1.enabled=true integer n //dw_1.Reset() n=dw_1.insertrow(0) dw_1.SetRedraw(TRUE) dw_1.scrolltorow(n) dw_1.SetRowFocusIndicator(Hand!) dw_1.setfocus() if dw_1.rowcount()>0 then dw_1.Setitem(n,"ccurso",sle_16.Text) dw_1.Setitem(n,"ncurso",sle_17.Text) dw_1.Setitem(n,"turno",sle_18.Text) dw_1.Setitem(n,"nhoras",sle_19.Text) dw_1.Setitem(n,"creditos",sle_20.Text) dw_1.Setitem(n,"aula",sle_21.Text) dw_1.Setitem(n,"perion",sle_22.Text) dw_1.Setitem(n,"coddoc",sle_1.Text) dw_1.Setitem(n,"nomdoc",sle_2.Text) End if sle_16.text=' ' sle_17.text=' ' sle_18.text=' ' sle_19.text=' ' sle_20.text=' ' sle_21.text=' ' sle_22.text=' ' cb_4.enabled=TRUE sle_16.enabled=FALSE sle_17.enabled=FALSE sle_18.enabled=FALSE sle_19.enabled=FALSE sle_20.enabled=FALSE sle_21.enabled=FALSE sle_22.enabled=FALSE cb_8.enabled=TRUE cb_9.enabled=TRUE
Boton de comando RECHAZAR: cb_6 Evento clicked Close(w_docentes) Boton de comando BORRAR: cb_7 Evento clicked
Pgina 60
datawindows control dw_1 datawindows objeto dw_cargalec datawindows dw_cargalec En la siguiente imagen apreciamos el datawindows objeto y a travs del cual manejamos los datos de cargalectiva del docente. Esta relacionada con la tabla dbo.cargalect de la base de datos matricula
Boton de comando REGISTRAR: cb_8 Evento cliked dw_2.enabled=true integer n //dw_2.Reset() n=dw_2.insertrow(0) dw_2.SetRedraw(TRUE) dw_2.scrolltorow(n) dw_2.SetRowFocusIndicator(Hand!) dw_2.setfocus() if dw_2.rowcount()>0 then dw_2.Setitem(n,"coddoc",sle_1.Text) dw_2.Setitem(n,"nomdoc",sle_2.Text) dw_2.Setitem(n,"dirdoc",sle_3.Text) dw_2.Setitem(n,"fecnac",sle_4.Text) dw_2.Setitem(n,"le",sle_5.Text) dw_2.Setitem(n,"tele",sle_6.Text) dw_2.Setitem(n,"sexo",sle_7.Text) dw_2.Setitem(n,"titulo",sle_8.Text) dw_2.Setitem(n,"especial",sle_9.Text) dw_2.Setitem(n,"feching",sle_13.Text) dw_2.Setitem(n,"cargo",sle_11.Text) dw_2.Setitem(n,"jornalab",sle_12.Text) dw_2.Setitem(n,"condi",sle_10.Text) dw_2.Setitem(n,"nivmag",sle_14.Text)
Pgina 61
Datawindows control dw_2 Datawindows objeto dw_docentes El data windows dw_2 y el datawindows dw_docentes registrar los datos del docente. Interactua con la tabla dbo.docentes
Pgina 62
FORMULARIO DOCENTES w_docentes Evento OPEN // Conectar Dw con la BD dw_1.settransobject(SQLCA) dw_2.settransobject(SQLCA) // Limpia el bufer de datawindows y se edita el SQL de datawindow // Trae la informacion de la consulta que esta en el data windows object dw_1.retrieve() dw_2.retrieve()
INTERFAZ DE USUARIO DE CONSULTA DE ASIGNATURAS: w_consuasig1 Data windows control: dw_1 Datawindows objeto: dw_asignaturas
Pgina 63
El datawindoeos objeto dw_asignaturas muestra las asignaturas registradas en la tabla dbo.asignat de la base de datos Matricula
Evento clicked del dw_1 (Permite capturar datos del registro de asignaturas para migrarlos al w_docentes y a los cuadros de edicinsealados string ls_dcodcu long r r=dw_1.getRow() ls_dcodcu=dw_1.GetItemString(r,'dcodcu') string vdcodcu,vdnomcu,vcreditos,vnhoras select dcodcu,dnomcu,creditos,nhoras into :vdcodcu,:vdnomcu,:vcreditos,:vnhoras from asignat where rtrim(dcodcu)=rtrim(:ls_dcodcu); w_docentes.sle_16.text=vdcodcu w_docentes.sle_17.text=vdnomcu w_docentes.sle_20.text=vcreditos w_docentes.sle_19.text=vnhoras --------------------------------------------------------------------------------------------------------------------------------------------
Pgina 64
Pgina 65
Cuadro de edicin CODIGO: cb_1 Evento keym if keydown(27) then st_33.visible=FALSE open(w_consualumno) end if if keydown(keyenter!) then if len(trim(sle_1.Text))<8 then beep(1) messageBox("Error","Codigo Incorrecto !",Exclamation!) sle_1.SetFocus() Return else string vdcodalu,vdnomalu,vdirecc,vdcodeap,veap,vfecnac,vanioing,vle select dcodalu,dnomalu,direcc,dcodeap,eap,fecnac,anioing,le into :vdcodalu,:vdnomalu,:vdirecc,:vdcodeap,:veap,:vfecnac,:vanioing,:vle from alumno where dcodalu=:sle_1.text; sle_2.text=vdnomalu sle_5.text=vdirecc sle_3.text=vdcodeap sle_4.text=veap sle_6.text=vfecnac sle_8.text=vle sle_7.text=vanioing string vpicture vpicture=sle_1.Text+".jpg" p_1.PictureName=vpicture sle_9.enabled=True sle_10.enabled=True sle_11.enabled=True sle_12.enabled=True sle_13.enabled=True sle_14.enabled=True sle_15.enabled=True sle_16.enabled=True sle_17.enabled=True sle_18.enabled=True Integer ao ao=year(today()) date fecha fecha=today() String vp if integer(mid(string(fecha),4,2))<7 then vp=string(ao)+'1' else vp=string(ao)+'2' End if sle_9.text=vp // substraemos con mid() del sle_9 el semestre-digito 5 sle_10.text=mid(sle_9.text,5,1) sle_11.text='G' sle_12.text='D' sle_13.text='1' sle_14.text='1' //date fecha //fecha=Today() sle_15.text=string(fecha) sle_16.text=string(fecha) cb_asignat.enabled=TRUE st_33.visible=FALSE sle_9.SetFocus()
Pgina 66
Cuadro de edicin CODIGO: sle_1 Evento modified if len(trim(sle_1.Text))<8 then beep(1) messageBox("Error","Codigo Incorrecto !",Exclamation!) sle_1.SetFocus() Return End if
Boton de comando ELEGIR: cb_asignat Evento clicked sle_9.enabled=False sle_10.enabled=False sle_11.enabled=False sle_12.enabled=False sle_13.enabled=False sle_14.enabled=False sle_15.enabled=False sle_16.enabled=False sle_17.enabled=False sle_18.enabled=False sle_19.enabled=True sle_20.enabled=True sle_21.enabled=True sle_22.enabled=True sle_23.enabled=True sle_24.enabled=True sle_25.enabled=True sle_26.enabled=True sle_28.enabled=True sle_27.enabled=True sle_29.enabled=True cb_asignat.enabled=FALSE sle_1.Enabled=FALSE st_36.visible=TRUE st_35.visible=TRUE sle_19.setfocus()
Cuadro de edicin CODIGO: sle_19 Evento modified string vdcodcu,vdnomcu,vanio,vsemes,vcodfac,vdcodeap,vcreditos,vnhoras,vprereq select dcodcu,dnomcu,anio,semes,codfac,dcodeap,creditos,nhoras,prereq into :vdcodcu,:vdnomcu,:vanio,:vsemes,:vcodfac,:vdcodeap,:vcreditos,:vnhoras,:vprereq from asignat where dcodcu=:sle_19.text; sle_20.text=vdnomcu sle_21.text=vanio sle_22.text=vsemes sle_23.text=vcreditos sle_24.text=vnhoras sle_25.text=vdcodeap sle_26.text=vcodfac sle_27.text=vprereq cb_5.enabled=True cb_6.enabled=True cb_7.enabled=True cb_8.enabled=True cb_9.enabled=True st_36.visible=FALSE st_35.visible=TRUE
Pgina 67
Cuadro de edicin CODIGO: sle_19 Evento keya if trim(sle_19.text)='' then if keydown(27) then open(w_consuasig) End if End if if keydown(keyenter!) then string vdcodcu,vdnomcu,vanio,vsemes,vcodfac,vdcodeap,vcreditos,vnhoras,vprereq select dcodcu,dnomcu,anio,semes,codfac,dcodeap,creditos,nhoras,prereq into :vdcodcu,:vdnomcu,:vanio,:vsemes,:vcodfac,:vdcodeap,:vcreditos,:vnhoras,:vprereq from asignat where dcodcu=:sle_19.text; sle_19.text=vdcodcu sle_20.text=vdnomcu sle_21.text=vanio sle_22.text=vsemes sle_23.text=vcreditos sle_24.text=vnhoras sle_25.text=vdcodeap sle_26.text=vcodfac sle_27.text=vprereq End If
Cuadro de edicin CODIGO: sle_19 Evento losefocus cb_5.enabled=True cb_6.enabled=True cb_7.enabled=True cb_8.enabled=True cb_9.enabled=True
Cuadro de edicin : sle_29 Evento modified string vcoddoc,vnomdoc select coddoc,nomdoc into :vcoddoc,:vnomdoc from docentes where coddoc=:sle_29.text; sle_29.text=vcoddoc st_35.visible=FALSE
Cuadro de edicin : sle_29 Evento keyd if trim(sle_29.text)='' then if keydown(27) then open(w_verdocentes) End if End if if keydown(keyenter!) then string vcoddoc,vnomdoc select coddoc,nomdoc into :vcoddoc,:vnomdoc from docentes where coddoc=:sle_29.text; sle_29.text=vcoddoc End If
Pgina 68
Boton de comando MIGRAR: cb_5 Evento clicked dw_1.enabled=true integer n n=dw_1.insertrow(0) dw_1.scrolltorow(n) dw_1.SetRowFocusIndicator(Hand!) dw_1.setfocus() if dw_1.rowcount()>0 then dw_1.Setitem(n,"nummat",sle_28.Text) dw_1.Setitem(n,"dcodalu",trim(sle_1.Text)) dw_1.Setitem(n,"dnomalu",trim(sle_2.Text)) dw_1.Setitem(n,"aula",trim(sle_13.Text)) dw_1.Setitem(n,"grupo",trim(sle_14.Text)) dw_1.Setitem(n,"perasig",trim(sle_9.Text)) dw_1.Setitem(n,"condi",trim(sle_11.Text)) dw_1.Setitem(n,"turno",trim(sle_12.Text)) dw_1.Setitem(n,"dcodcu",trim(sle_19.Text)) dw_1.Setitem(n,"dnomcur",trim(sle_20.Text)) dw_1.Setitem(n,"semes",trim(sle_22.Text)) dw_1.Setitem(n,"creditos",Integer(sle_23.Text)) dw_1.Setitem(n,"nhoras",Integer(sle_24.Text)) dw_1.Setitem(n,"prereq",trim(sle_27.Text)) dw_1.Setitem(n,"coddoc",trim(sle_29.Text)) End if sle_19.text=' ' sle_20.text=' ' sle_21.text=' ' sle_22.text=' ' sle_23.text=' ' sle_24.text=' ' sle_25.text=' ' sle_26.text=' ' sle_27.text=' ' sle_29.text=' ' cb_9.enabled=TRUE cb_10.enabled=TRUE cb_asignat.enabled=TRUE sle_19.enabled=FALSE sle_20.enabled=FALSE sle_21.enabled=FALSE sle_22.enabled=FALSE sle_23.enabled=FALSE sle_24.enabled=FALSE sle_25.enabled=FALSE sle_26.enabled=FALSE sle_27.enabled=FALSE sle_29.enabled=FALSE
Pgina 69
Pgina 70
Datawindows objeto: dw_matricula. Recepciona en sus campos los datos de matricula del estudiante, tales como codigo, nombres, period,semester codigo de la escuela, etc.
Pgina 71
Datawidows objeto Dw_notas1 que captura las notas del primer parcial
Pgina 72
Pgina 73
Programacion en PowerBuilder y Sql Server FORMULARIO DE PROCESAMIENTO DE NOTAS DEL SEGUNDO PARCIAL
La siguiente imagen nos muestra la estructura de w_notas2 que la interfaz de usuario para la captura del notas del segundo parcial. Cuadros de edicin Boton de comando para filtrar asignaturas
Pgina 74
Estructura del datawindows objeto dw_notas2 numeracin secuencial de las columnas Tab order de las columnas
- dbo.alumnos
dcodalu dnomalu sexo fecnac distr prov dep le direcc colpro colubi tele anioing nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar (8) (40) (1) (10) (20) (20) (20) (8) (20) (20) (20) (6) (4)
Pgina 75
- dbo.asignat
dcodcu dnomcu anio codfac facultd dcodeap escuela semes nroasi nhorast nhorasp nhorass nhorasl nhoras crditos prereq nparciales formac marca nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar int int int int int int int nvarchar int nvarchar nvarchar (6) (45) (4) (2) (50) (2) (50) (2)
- dbo.docentes
coddoc nomdoc dirdoc fecnac le tele sexo titulo especial feching cargo jornalab condi nivmag perion nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar (3) (40) (40) (10) (8) (6) (1) (30) (25) (10) (30) (3) (1) (3) (5)
- dbo.cargalec
coddoc nomdoc perion ccurso ncurso turno nhoras crditos aula nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar int int nvarchar (3) (40) (5) (6) (60) (1)
(1)
- dbo.matricul
nummat dcodalu dnomalu nvarchar nvarchar nvarchar (10) (8) (40)
Pgina 76
- dbo.notas
nummat dcodalu dnomalu dcodcu dnomcur cargorep semes turno condi coddoc nomdoc nhorast nhorasp nhorass nhorasl nhoras crditos prereq grupo aula perasig ordist orden sexo retirado sitfinr parc1 parc1r parc1s parc1rs parc2 parc2r parc2 parc2rs pract1 pract2 pract3 pract4 pract5 pract6 pract7 pract8 evap1 evap2 evap3 evap4 nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar numeric numeric numeric numeric numeric numeric nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar nvarchar smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint smallint (8) (8) (40) (6) (45) (1) (2) (1) (1) (3) (40) (14,2) (14,2) (14,2) (14,2) (14,2) (14,2) (10) (1) (1) (11) (40) (3) (1) (1) (3)
Pgina 77
dbo.Sistema
char char char 10 20 10
REFERENCIAS BIBLIOGRAFICAS
https://rapidshare.com/#!download|895l36|3906492521|tutorial-pwbasico.pdf|2269|R~EC0E3D59AD5806E93EACC8D518C98E84|0|0 http://www.lawebdelprogramador.com/cursos/Power_Builder/396Guia_de_autoaprendizaje_en_Power_Builder.html http://www.lawebdelprogramador.com/codigo/Power_Builder/1338-Backup_Restore_SQL.html http://desarrolladorpowerbuilder.blogspot.com/ http://www.inei.gob.pe/biblioineipub/bancopub/inf/lib5022/indice.HTM http://www.abcdatos.com/tutoriales/tutorial/l6752.html
http://www.clikear.com/manuales/sql/default.aspx http://www.kernelnet.com/trucos/trucos-de-bases-de-datos/19-acceder-a-bases-de-datos-sql-server-
Pgina 78