Buscar en el Blog

domingo, 15 de marzo de 2015

Cadena de Conexion PowerBuilder a Sql Server 2008 por ODBC

Cuando queremos conectarnos por ODBC desde PowerBuilder al Servidor de Base de Datos, podemos hacerlo de muchas formas: Creando el DSN a traves del asistente de origenes de datos o estableciendo la cadena de conexion en el codigo. Hoy veremos la segunda opcion.




// Profile BUFFALOBEEF
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='Driver={SQL Server Native Client 10.0};Server=192.168.1.30;Database=buffalobeef;Uid=sa;Pwd=sanissi;"


En donde:
SQL Server Native Client 10.0

Es el driver para conectarnos al servidor, el cual puede ser descargado desde aqui segun la version del sistema operativo que usen.

Server=192.168.1.30

  Esta linea indica la ip del servidor, en mi caso era 192.168.1.30

Database=buffalobeef;

 Nombre de la base de datos

 Uid=sa;Pwd=sanissi;"
Uid=usuario y Pwd seria la contraseña.


Para que una aplicacion funcione en una maquina cliente, debe tener instalado las librerias de PowerBuilder, ademas del driver de conexion de la base de datos.





viernes, 13 de marzo de 2015

UML 2 Ejemplos y Ejercios





Iniciación, ejemplos y ejercicios corregidos [3ª edición]

Este libro sobre UML 2 está dirigido tanto a estudiantes como adesarrolladores que se ocupan
del modelado de sistemas, de programas y de procesos.
Etapa a etapa, el lector descubrirá los elementos de modelado a partir de ejemplos pedagógicos
extraídos del mundo de los caballos. Tras unaintroducción a la orientación a objetos, la obra
presenta los diferentes diagramas de UML 2, desde la descripción de los requisitos a partir de
casos de uso, hasta el diagrama de componentes pasando por losdiagramas de interacción, de
clases, de estructura compuesta, de estados transiciones y de actividades. El lector aprenderá
de qué manera los diagramas de interacción pueden utilizarse para descubrir los objetos que
componen el sistema.
Esta nueva edición de la obra introduce los diagramas de perfil.
Los capítulos del libro:
Introducción – A propósito de UML – Conceptos de la orientación a objetos – Modelado de los
requisitos – Modelado de la dinámica – Modelado de objetos – Estructuración de los elementos de
modelado – Modelado del ciclo de vida de los objetos – Modelado de las actividades – Modelado
de la arquitectura del sistema – Los perfiles – Anexo 1: Arquitectura MDA: la herramienta DB-MAIN
– Anexo 2: Corrección de los ejercicios – Anexo 3: Glosario – Anexo 4: Léxico – Anexo 5: Notación
gráfica – Anexo 6: Bibliografía



martes, 3 de marzo de 2015

Qt C++ Capturar la tecla presionada - Keypress

Agregamos la siguiente linea en el archivo de cabecera para reimplementar la funcion eventFilter.

//Filtrar los eventos
bool eventFilter(QObject *obj, QEvent *event);

en el archivo cpp implementamos la funcion.

bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
     //Si el evento es del Tipo Keypress
    if (event->type() == QEvent::KeyPress) {
    //Hacemos un Cast
    QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
    qDebug("Tecla Presionada %d", keyEvent->key());
    return true;
    } else {
    // 
    return QObject::eventFilter(obj, event);
    }
}
Ademas incluir en el archivo cpp los siguientes archivos.



#include <QKeyEvent>
#include <QDebug>


 
 
 
Ahora vamos instalar el eventFilter, es decir, en que objecto queremos hacer 
el filtro  de eventos. Para eso colocamos la siguiente linea de codigo en el
constructor de la clase.
 
 ui->lineEdit->installEventFilter(this);
 
 
 
 
Entonces el archivo quedaria asi.
 

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDebug>
#include <QKeyEvent>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{


    ui->setupUi(this);
   


 ui->lineEdit->installEventFilter(this);
}


MainWindow::~MainWindow()
{
    delete ui;
}




bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::KeyPress) {
    //and here put your own logic!!
    QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
    qDebug("Ate key press %d", keyEvent->key());
    return true;
    } else {
    // standard event processing
    return QObject::eventFilter(obj, event);
    }
}

Al Ejecutar y digitar en la aplicacion en la ventana Output debe salir un resultado 
similar al de la siguiente imagen.




Nota: EL Debug sirve para mostrar los resultados en la consola de Qt Creator