lunes, 4 de junio de 2007

Configurar Idioma y decimales en Oracle 10g

http://geocities.com/davidcastilloespinoza

Si utilizas Power Builder con Base de datos oracle y tienes problemas en la utilización de puntos decimal y separador de miles, en este caso, la versión de PB en que trabajes, es indiferente, el problema, es la incompatibilidad en el SET de caracteres del ORACLE entre el cliente y el set de caracteres con el cual ha sido instalada la DB, ya que un en la base de datos esta definida como 123.125,25 y para el cliente 123,125.25 Si te fijas bien el separador de miles es el (.) punto para el cliente.

Antes debemos verificar si el idioma de configuración de la base de datos es la misma que la configuración de sesión.

select * from nls_database_parameters;
select * from nls_session_parameters;

La primera consulta, es para ver los parametros del lenguaje en que fue instalada la DB, y la segunda es para ver los parametros con que esta instalado el cliente(session) en las consultas verifica que las columnas NLS_NUMERIC_CHARACTERS y NLS_LANGUAGE esten iguales en ambas consultas.

Para superar el problema, debes ir al REGEDIT y verificar en la entrada: HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> HOME0, y cambiar la clave NLS_LANG = SPANISH_SPAIN.WE8ISO8859P1

dicha clave debe quedar

NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1

NOTA: la carpeta HOME0, también puede ser HOME1 o HOME2, dependiendo el sistema operativo o la versión del ORACLE que tengas instalado..

Si desea cambiar en el cliente entonces debes buscar en:
HKLM -> SOFTWARE ->ORACLE KEY_ORACLIENT10G_HOME1
la llave NLS_LANG debe quedar :


NLS_LANG = AMERICAN_AMERICA.WE8ISO8859P1

martes, 22 de mayo de 2007

Conectar Power Builder 10.5 a Oracle 10g

Vamos a asumir el siguiente escenario:
1. Nuestra base de datos oracle se encuentra en el servidor DESARROLLO.LOCAL
2. La Base de Datos a la cual deseamos conectarnos se llama DEMO

Para poder realizar la conexión primero debemos tener configurado el cliente Oracle.

1. Instala el cliente oracle 10g. Puedes bajarlo desde:
http://www.oracle.com/technology/software/tech/oci/instantclient/index.html

2. Una vez que instalaste el cliente oracle debes configurar el archivo tnsnames.ora para que pueda acceder al servidor de la base de datos, añade este script al tnsnames y cambia los valores de NOMBRE DEL SCRIPT (demo.desarrollo.local) , HOST y SERVICE_NAME

DEMO.DESARROLLO.LOCAL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sistemasd1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = demo)
)
)

3. Una vez realizados estos cambios ingresamos a Power Builder para conectarnos a la Base de Datos.

4. Primero ingresa al icono de DB Profiles
Elige O10 Oracle10g y selecciona el botón NEW



5. Una vez seleccionada la opción de nuevo pefil, la ventana que se abrirá debes llenarla con los siguientes datos

· En profileName: Asigna el nombre que deseas darle a la conexión ConexionOracle
· Server: ingresa el nombre del script en nuestro ejemplo es demo.desarrollo.local
· Login ID: un usuario con permiso para ingresar a la base de datos, utilizaremos SCOTT
· Password: ingresa el password de acceso

6. En la pestaña SYSTEM ingresa el nombre del dueño del catalogo, o usuario con permisos para trabajar sobre las tablas, en nuestro caso el usuario es Scott.



7. Finalmente ingresa a la pestaña PREVIES y selecciona el BOTON TEST, un mensaje de conexión exitosa debe ser visible. Eso significa que ya tas conectado a la base de datos Oracle


jueves, 19 de abril de 2007

COMO EJECUTAR DESDE POWER BUILDER PROCEDIMIENTOS ALMACENADOS (STORED PROCEDURES) EN SQL SERVER

Power Builder castillodavid@gmail.com

Para ejecutar un procedimiento almacenado que nos devuelva un resultado realizaremos las siguientes operaciones:

1. Crear un procedimiento almacenado en SQL Server
2. Crear el código en Power Builder que despliegue el resultado del Stored Procedure

1. Crear un procedimiento almacenado en SQL Server
--En SQL Server Ejecutamos el siguiente codigo
--Creamos el procedimiento en SQl Server
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
Create Procedure PSuma
--recibimos dos parametros
@a int,
@b int
as
--declaramos lavariable que contendra el resultado
declare @c int
select @c = @a + @b
--devolvemos el resultado
select @c
GO
SET QUOTED_IDENTIFIER OFF
GO SET ANSI_NULLS ON
GO

2. Crear el código en Power Builder que despliegue el resultado del Stored Procedure
//------------------------------------------------------------------------
//En power Builder escribimos el siguiente código
//Codigo en Power Builder
//Declaramos dos variables de trabajo
int a,b,resultado
a = 3 b = 5

//declaramos el procedimiento almacenado
//Primero declaramos con un nombre lógico para el nombre del procedimiento almacenado
//enviamos los dos parámetros a y b
declare pb_Suma procedure for PSuma
@a = :a,
@b = :b;

//ejecutamos el procedimiento
execute pb_Suma;

//el resultado es devuelto en un cursor el cual es vaciado en la variable resultado
fetch pb_Suma into :resultado;

//cerramos el cursor
close pb_Suma;

//Asignamos el valor resultado en un sle
sle_1.text = string(resultado)

martes, 3 de abril de 2007

COMO CONECTAR A UNA BASE DE DATOS SQL SERVER DESDE POWER BUILDER 10.5

1. PRIMERO Y UN PASO IMPORTANTE ES TENER INSTALADO FRAMEWORK 2.0

2. AHORA ELIGE DATABASE


3. AQUÍ PUEDES DEFINIR LA FUENTE DE DATOS A LA QUE DESEAS CONECTARTE. EN ESTE CASO ES UNA BASE DE DATOS SQL-SERVER. POWER BUILDER 10.5 YA NO USA LOS DRIVERS NATIVOS, SU FORMA DE CONEXIÓN ES MEDIANTE ADO.NET

4. SOBRE ADO.NET CLICK DERECHO Y ELIGE NUEVO PROFILE


5. AHORA INGRESAMOS LOS PARAETROS CON LA SIGUIENTE INFORMACION:
a. Profile Name: (nombre del perfil). Ej Conexión_Northwind
b. NameSpace: Elegimos. System.Data.SqlClient
c. DataSource: Nombre del servidor al que deseamos conectarnos Ej. sistemas0
d. User id: Nombre del usuario que tiene permiso de conectarse al servidor SQL Server Ej sa
e. Password del usuario que va a realizar la conexión **************
f. DataBase Nombre del servidor al que deseamos conectarnos Ej Northwind

6. Ahora ingresamos a la pestaña PREVIEW


7. Probamos la conexión con el boton TEST CONNECTION


8. Un mensaje de conexión exitosa debe ser visible.