anonymous Log in
Search
Recents:
v3.0
java-l
Before connect
18/10/19 19:44

jlozada

Replies: 2

Buenas tardes estimAdos estoy intentando hacer una conexión dinámica a
base de datos con el tipo de dato DBConnection . Lo estoy ejecutando con
Gx16 U5, Java con MySQL, y con SQL
Se configuró la propiedad Before Connect y en el procedimiento relacionado
se tiene lo siguiente
En un web panel Login capturo las cookies
&CookieOk = SetCookie("User",&Usuario,"", NullValue(&Today))
&CookieOk = SetCookie("Pass",&Password,"", NullValue(&Today))
Procedimiento CONNECT
&Usuario = GetCookie('User')
&Passw0rd = GetCookie('Pass')
Do Case
Case &Usuario = 'usuario'
&GetDatastore = 'Default'
&DataBase = 'agencia'
Case &Usuario = 'usuario2'
&GetDatastore = 'Dias'
&DataBase = 'diasfestivos'
Case &Usuario = 'usuario3'
&GetDatastore = 'NetMySql'
&DataBase = 'pruebas'
Otherwise
&DataBase = "Default_Error" //default database
EndCase
//////////////////////// Java
////////////////////////////////////////////
&dbconn = GetDatastore(&GetDatastore)
&dbconn.JDBCDriverName = "com.mysql.jdbc.Driver"
&dbconn.JDBCDriverURL = "jdbc:mysql://genexus/" + &DataBase.Trim()
//agencia"
&dbConn.UserName = &Usuario.Trim()
&dbConn.UserPassword = &Passw0rd.Trim()
//////////////////////////////////////////////////////////////////////////////
Funciona con una sola BD, pero el tema es cuando tengo Data View en otra
BD, y quiero saber si es posible asignar a un usuario varias conexiones a
BD, ya que este mismo puede tener acceso a varias BD que estan con Data
View.
En las propiedades de la BD deben estar en blanco ? asi lo he estado
haciendo
Y tambien como puedo conectar con SQL, ya que me sale error de driver
Intente con esto:
//&dbconn = GetDatastore("Default")
&dbconn = GetDatastore("PruebaSQL")
&dbconn.JDBCDriverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"
&dbconn.JDBCDriverURL =
"jdbc:microsoft:sqlserver://genexus:1433;databaseName=" + "integraafp" +
";SelectMethod=cursor"
//&dbconn.ConnectionData = "DATABASE=" + &DataBase.Trim() //SQLServer
&dbConn.UserName = &Usuario.Trim()
&dbConn.UserPassword = &Passw0rd.Trim()
Saludos,
Juan Luis Lozada C.
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,20
Por consultas owner-java-l@gxtech.com.uy
Replies

dhnasci

22/10/19 12:49
Bom dia Juan, Para vc trabalhar com vários DataViews conectados a vários BDs, basta vc usar a ferramenta Tools > Database Reverse Engineering Vai importando as Views de forma organizada, associando as DataStores corretas. Sugiro primeiro vc criar as DataStores, antes de usar a ferramenta e testar a conexão para ver se está tudo bem. Se as tabelas tiverem o mesmo nome nos vários BDs, basta colocar um prefixo que as diferencie no seu ambiente de trabalho. Assim vc não precisa usar o código Java para trabalhar com dbconn. Basta usar direto as Views, que já estarão apontando para o banco correto, usando xFor each Atenciosamente, *Dirceu HenriqueAnalista de Sistemas* *www.dnconsultoria.manaus.br * Em sex, 18 de out de 2019 às 18:45, Juan Luis Lozada < juanluislozadac@gmail.com> escreveu: > Buenas tardes estimAdos estoy intentando hacer una conexión dinámica a > base de datos con el tipo de dato DBConnection . Lo estoy ejecutando con > Gx16 U5, Java con MySQL, y con SQL > Se configuró la propiedad Before Connect y en el procedimiento relacionado > se tiene lo siguiente > > En un web panel Login capturo las cookies > &CookieOk = SetCookie("User",&Usuario,"", NullValue(&Today)) > &CookieOk = SetCookie("Pass",&Password,"", NullValue(&Today)) > > Procedimiento CONNECT > > &Usuario = GetCookie('User') > &Passw0rd = GetCookie('Pass') > > Do Case > Case &Usuario = 'usuario' > &GetDatastore = 'Default' > &DataBase = 'agencia' > Case &Usuario = 'usuario2' > &GetDatastore = 'Dias' > &DataBase = 'diasfestivos' > Case &Usuario = 'usuario3' > &GetDatastore = 'NetMySql' > &DataBase = 'pruebas' > Otherwise > &DataBase = "Default_Error" //default database > EndCase > > //////////////////////// Java > //////////////////////////////////////////// > &dbconn = GetDatastore(&GetDatastore) > &dbconn.JDBCDriverName = "com.mysql.jdbc.Driver" > &dbconn.JDBCDriverURL = "jdbc:mysql://genexus/" + &DataBase.Trim() > //agencia" > &dbConn.UserName = &Usuario.Trim() > &dbConn.UserPassword = &Passw0rd.Trim() > > ////////////////////////////////////////////////////////////////////////////// > > Funciona con una sola BD, pero el tema es cuando tengo Data View en otra > BD, y quiero saber si es posible asignar a un usuario varias conexiones a > BD, ya que este mismo puede tener acceso a varias BD que estan con Data > View. > > En las propiedades de la BD deben estar en blanco ? asi lo he estado > haciendo > > Y tambien como puedo conectar con SQL, ya que me sale error de driver > Intente con esto: > //&dbconn = GetDatastore("Default") > &dbconn = GetDatastore("PruebaSQL") > &dbconn.JDBCDriverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver" > &dbconn.JDBCDriverURL = > "jdbc:microsoft:sqlserver://genexus:1433;databaseName=" + "integraafp" + > ";SelectMethod=cursor" > //&dbconn.ConnectionData = "DATABASE=" + &DataBase.Trim() //SQLServer > &dbConn.UserName = &Usuario.Trim() > &dbConn.UserPassword = &Passw0rd.Trim() > > > > Saludos, > > Juan Luis Lozada C. > > ----------------------------------------- Para Suscribirse/Desuscribirse: http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,30,20 Por consultas owner-java-l@gxtech.com.uy

jlozada

22/10/19 13:44
Hola Direceu, Gracias por responder. Pues si manejo la ingeniería inversa y por cada Bd es un data store, pero esto se amarra a un usuario de la Bd en las propiedades. Lo que requiero es tener el pull de las conexiones de la bd con los usuarios que se auténtican con su usuario de la bd y ver en la bd del as400 la conexiones y que usuarios están conectados, lo realice en java con mysql para probar y para esto es necesario hacerlo en run time y con cookies. Cualquier ayuda es bienvenida. Gracias Enviado desde mi iPhone - Juan Luis > El 22 oct. 2019, a la(s) 10:50, Dirceu Henrique


Back to java-l