Power Builder - este es mi codigo que no logro que corra

 
Vista:

este es mi codigo que no logro que corra

Publicado por Arturo (24 intervenciones) el 20/11/2005 01:37:18
saludos a todos bueno continuando con el problema de insercion de datos a una tabla este es el codigo que tengo espero que puedan ayudarme a arreglarlo.

//declaro variables
string nom,ape,dir,ls_sql
long tel,eda

//recivo los datos de los SingleLineEdit
nom = sle_nom_prue.text
ape = sle_ape_prue.text
dir = sle_dir_prue.text
tel = long(sle_tel_prue.text)
eda = long(sle_eda_prue.text)

//esta parte segun tengo entendido me crea la filo pero no lo hace
sqlca.AutoCommit = true
ls_sql = 'Alter table pruebas.prue_usuario add row
execute immediate :ls_sql using sqlca

//creo mi sentencia SQL

insert into prue_usuario(
nombre,
apellido,
edad,
telefono,
direccion);
values(
:nom,
:ape,
:eda,
:tel,
:dir);

//comparo si sirvio la consulta

if sqlca.sqlcode=0 then

commit;

//estas lineas las agregue para saber cual era el error, y el error que resulta es transaction not connected

elseif sqlca.sqlcode = -1 then

messagebox ("Error",sqlca.sqlErrText)
else

rollback;

end if


bueno todo ese es el codigo que estoy manejando espero que alguien pueda ayudarme con mi problema de antemno gracias

atte

Arturo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:este es mi codigo que no logro que corra

Publicado por Jancarlo (890 intervenciones) el 20/11/2005 04:09:20
Hola tu código esta bien excepto una parte que esta de más, ya que se supone q a hacer INSERT INTO automaticamente se crea un nuevo regitro y no es necesario hacer esa parte.

//declaro variables
string nom,ape,dir,ls_sql
long tel,eda

//recivo los datos de los SingleLineEdit
nom = sle_nom_prue.text
ape = sle_ape_prue.text
dir = sle_dir_prue.text
tel = long(sle_tel_prue.text)
eda = long(sle_eda_prue.text)

/**** TODO ESTO ESTA DE MAS*****/
//esta parte segun tengo entendido me crea la filo pero no lo hace
sqlca.AutoCommit = true
ls_sql = 'Alter table pruebas.prue_usuario add row
execute immediate :ls_sql using sqlca
/****************************************/
//creo mi sentencia SQL

insert into prue_usuario(
nombre,
apellido,
edad,
telefono,
direccion);
values(
:nom,
:ape,
:eda,
:tel,
:dir);

//comparo si sirvio la consulta

if sqlca.sqlcode=0 then

commit;

//estas lineas las agregue para saber cual era el error, y el error que resulta es transaction not connected

elseif sqlca.sqlcode = -1 then

messagebox ("Error",sqlca.sqlErrText)
else

rollback;

end if

Suerte !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:este es mi codigo que no logro que corra

Publicado por Arturo Ibarra (24 intervenciones) el 21/11/2005 21:54:26
OK si lo entiendo pero quisiera saber que es ese error que me muestra de transaction not connected

gracias
atte:

Arturo Ibarra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:este es mi codigo que no logro que corra

Publicado por Jancarlo (890 intervenciones) el 21/11/2005 22:30:50
Verifica si ya haz hecho la conexión con tu BD. Tienes que conectrate mediante tu objeto transacción. Por defecto es el SQLCA, asignale los parámetros necesarios y luego usas connect

Ejemplo:

// Profile para una BD en SQL Server 2000
SQLCA.DBMS = "MSS Microsoft SQL Server"
SQLCA.Database = "MI_BD"
SQLCA.LogPass = "123456"
SQLCA.ServerName = "(local)"
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""

connect;

if sqlca.sqlcode=0 then
//conectado
else
//error al conectarse
messagebox('Error',sqlca.sqlerrtext,stopsign!)
end if

Suerte !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:este es mi codigo que no logro que corra

Publicado por Arturo (24 intervenciones) el 21/11/2005 22:42:53
ok gracias pero tengo una duda en donde devo de incluir este codigo tengo uno parecido pero no se donde incluirlo acaso es en la aplicacion o en el codigo antestes de la sentencia SQL

gracias

ATTE:
Arturo Ibarra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:este es mi codigo que no logro que corra

Publicado por Jancarlo (890 intervenciones) el 21/11/2005 22:51:25
Entonces primero debes crear el origen de datos de acuerdo a la BD que utlices y luego configuras tu SQLCA

Te pongo el profile del Anywhere que viene como ejemplo en PB

SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=EAS Demo DB V9;UID=dba;PWD=sql'"

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar