Home > Foro de AS400 >

Debates de AS400 > Dudas con as400 y c++

Dudas con as400 y c++

cruzemer
Distrito Federal, Mé...
Escrito por Cruzemer el 01/04/2008

Hola a todos!

Estoy usando c++ para poder ejecutar instrucciones embebidas de SQL como select, insert, delete, update, compilando y ejecutando los programas en as400; con la instruccion select si lo puedo hacer, este es el codigo que uso:

           EXEC SQL SELECT describe_chequera
           INTO :Sql_chequera:Sql_null_chequera
           FROM cuenta_banco
           WHERE id_banco = 127;

Pero para las otras instrucciones que afectan los datos de la tabla, no me permite hacer cambios, sera a caso que necesito algun tipo de permisos para poder escribir en estas. Este es el codigo que uso en un update:

  EXEC SQL UPDATE control_concilia
                       SET usuario_alta = 15
                       WHERE id_banco = 5;

Estos son los codigos de error que marca:


-518  The statement identified in the EXECUTE statement is a select-statement, or is not in a prepared state.   07003

-7008  The table is in an invalid state for the operation.

Por su ayuda, muchisimas gracias.


Citar  |  
Ver mensaje      

Ros
Alicante, España
Escrito por Ros el 02/04/2008
Te lo paso la lectura SQL en RPG, pero da lo mismo el leguaje de programación.

Para las sentencias SQL embebidas en leguaje de programación debes de declarar un cursor, abrir dicho cursor y trabajar sobre el.

Cuando declaras el cursor tienes la opción de declarar las columnas que vas actualizar, esto se hace así en as400 entre otras cosas porque a nivel de seguridad C2 (nivel 50) puede llegar incluso a definir a que columnas o campos de fichero o tabla tiene acceso un usuario.
*-
*DECLARACIÓN DEL CURSOR
*-
=========
solo lectura
=========
C/EXEC SQL
C+ DECLARE C1 SCROLL CURSOR FOR SELECT F2CODI, F2NOM1, F2TLF,
C+ F2POBL, F2PROV, F2BLOQ, F2CIF FROM CLIL99 WHERE F2NOM1 LIKE
C+ :X0NOMB AND F2CIF LIKE :XCIF ORDER BY F2NOM1
C/END-EXEC

==========
lectura y escritura
==========
C/EXEC SQL
C+ DECLARE C1 DYNAMIC SCROLL CURSOR FOR SELECT F2CODI, F2NOM1,
C+ F2TLF, F2POBL, F2PROV, F2BLOQ, F2CIF FROM CLIL99 WHERE F2NOM1
C+ LIKE :X0NOMB AND F2CIF LIKE :XCIF ORDER BY F2NOM1 FOR UPDATE OF
C+ F2CODI, F2NOM1, F2NOM2
C/END-EXEC



*
*-
*APERTURA DEL CURSOR
*-
C/EXEC SQL
C+ OPEN C1
C/END-EXEC
*-
*SITUAR EN EL PRIMER REGISTRO
*-
C/EXEC SQL
C+ FETCH BEFORE FROM C1
C/END-EXEC

Si quieres saber mas te paso donde están todos los manuales, por supuesto en la lengua del imperio, http://publib-b.boulder.ibm. Com/Redbooks. Nsf/redbooks/

Citar  |  
Ver mensaje     


Responder


Quiero recibir alertas por email cuando haya mensajes nuevos en este debate

Al escribir en el debate:
  1. Repasa la ortografía y no escribas en formato SMS.
  2. Lee el texto dos veces antes de publicar.
  3. No escribas todo en mayúsculas o negritas.
 
Páginas internacionales: España  |  Italia  |  Francia  |  México  |  Alemania  |  Reino Unido  |  Argentina  |  Chile  |  Colombia  |  USA

Búsquedas frecuentes: carta de cese aplicacion de la bioquimica prostodoncia total como grabar varios videos en un dvd que es un soplo en el corazon

Emagister cumple la Ley Orgánica 15/1999 de 13 de diciembre, de Protección de datos de Carácter Personal, y posee el código de inscripción nº 2002010053 del Registro General de la Agencia de Protección de Datos. Copyright © 1999/2000 - Grupo Intercom - Todos los derechos