Como Conectar Bd de Access con password a Power builder

Tengo un problema al conectar una base de datos de access con power builder.

La base de datos sin contraseña conecta sin problema

De esta forma:

SQLCA.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='C:\Bd.mdb'";

Pero si le pongo contraseña a la base de datos. Me uestra un error 303.

La coneccion lo hago de la siguiente forma.

SQLCA.DBParm = "PROVIDER='Microsoft.Jet.OLEDB.4.0',DATASOURCE='C:\Bd.mdb',JET OLEDB:DATABASE Password='1234'".

Alguien me pude ayudar con este problema.

1 Respuesta

Respuesta

Como primera opción, si has configurado el DataBase Profile en PowerBuilder, mira su preview a ver que te pone en la configuración de la conexión. Copia y Pega lo que ponga en el DBParm. A ver si con eso funciona.

Si no funciona, yo te cuento como lo hago en una miniaplicación conectada a un Access con password, pero no uso el Microsoft. Jet. OLEDB. Yo conecto por ODBC. Tengo un fichero de conexión llamado MiConfig. DSN donde esta configurado todo, para no tener que crear un perfil ODBC en cada equipo. Simplemente distribuyendo este fichero, ya sabe como conectarse.

Fichero MiConfig. DSN

[ODBC]
DRIVER=Microsoft Access Driver (*.mdb, *.accdb)
UID=admin
PWD=admin12345
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=8
MaxBufferSize=2048
FIL=MS Access
DriverId=25
DefaultDir=C:\Mi_Carpeta
DBQ=Mi_BD.accdb

Y luego en PowerBuilder pongo en el DBParm que use dicha configuración:

s_Fichero_Config = "C:\Mi_Carpeta\MiConfig.DSN"
sDBMS        = "ODBC"
sServerName  = "---"
sDataBase    = ProfileString( s_Fichero_Config , "ODBC" , "UID" , "" )//"---"
sLogID       = ProfileString( s_Fichero_Config , "ODBC" , "PWD" , "" )//"---"
sLogPass     = "---"
bAutoCommit  = FALSE
sDBParm      = "ConnectString=" + "'FILEDSN=" + s_Fichero_Config +";UID='" + sLogID + "';PWD='" + sLogPass + "',CommitOnDisconnect='No',DelimitIdentifier='No',DecimalSeparator=',',Date=' \''dd/mm/yyyy\'' ',DateTime=' \''dd/mm/yyyy hh:mm:ss\'' ',Time=' \''hh:mm:ss\'' '"

Después de esto, simplemente conecta el objeto transaction (SQLCA si es por defecto)

trConexion.DBMS       = sDBMS
trConexion.LogId      = sLogId
trConexion.LogPass    = sLogPass
trConexion.ServerName = sServerName
trConexion.AutoCommit = bAutoCommit
trConexion.DBParm     = sDBParm
// Conexión.
CONNECT USING trConexion;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas