Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Secuencia para grabar Oracle (https://www.clubdelphi.com/foros/showthread.php?t=57109)

pruz 05-06-2008 17:27:07

Secuencia para grabar Oracle
 
Hola Amigos, tengo el siguiente problema
necesito saber la secuencia exacta de comandos para grabar en Oracle 8i, tengo la DB conectada con ADO, la veo, la leo, y tengo todos los atributos necesarios para grabar de usuario, pero no graba, estoy usando metodo transaccional para grabar.
Solo necesito saber que instrucciones usar.


atte,
PAto

poliburro 05-06-2008 17:32:59

Cita:

Empezado por pruz (Mensaje 291528)

Solo necesito saber que instrucciones usar.


Código SQL [-]
Insert
  InTo Tabla
         (List of fields)
   Values( List of values);

pruz 05-06-2008 17:58:16

ok, eso lo tengo
pero cuando llego a la instruccion SQL.EXECSQL, para grabar me el error que 'LA OPERACION NO APLICABLE', por eso creo que estoy usando una instruccion que no corresponde

poliburro 05-06-2008 22:13:50

Podrias indicarme que componentes de ADO estás usando?
y la cadena de conexión que utilizas?

Saludos

AzidRain 05-06-2008 23:06:16

me huele a que el usuario no tiene permisos de escritura... pero bueno no soy experto en Oracle.

pruz 06-06-2008 16:24:42

Adjunto Codigo
 
PERDON ESTOY USANDO LA ODBC ESTANDAR DE MICROSOFT..

CODIGO FUENTE


DbOracle.StartTransaction;

with QOraCab.SQL do begin
Clear;
Add(' INSERT INTO XXRI_AR_DOCTOS_INTERFACE ');
Add(' (TATUS, INTERFACE_FUNCTION, INTERFACE_COUNTRY) VALUES ');
Add(' ( :STATUS, :INTERFACE_FUNCTION, :INTERFACE_COUNTRY ) ');
end;
QOracab.Prepare;
try
QOraCab.Parambyname('STATUS').AsString := 'NEW';
QOraCab.Parambyname('INTERFACE_FUNCTION').AsString := 'SQL';
QOraCab.Parambyname('INTERFACE_COUNTRY').AsString := 'CL';
QOraCab.ExecSQL; //aqui me da error
except;

end;

DbOracle.Commit;

poliburro 06-06-2008 20:22:17

Me permito darte un par de consejos.

- No uses BDE. En su lugar Usa ADO
- No uses ODBC usa OLEDB (Oledb aplica si decides migrar a ADO)
- No uses el driver de microsoft, mejor descarga el de oracle.
- aprovecha las caracetristicas de oracle y utiliza SPS.

Prueba la consulta de la siguiente manera:


Código Delphi [-]
   
DbOracle.StartTransaction;
 
QOraCab.SQL.Text :=
  '   INSERT ' +
  '       INTO XXRI_AR_DOCTOS_INTERFACE '  +
  '              (TATUS, INTERFACE_FUNCTION, INTERFACE_COUNTRY) ' + 
  '  VALUES  ( :STATUS, :INTERFACE_FUNCTION, :INTERFACE_COUNTRY )';
 
QOraCab.Parambyname('STATUS').AsString := 'NEW';
QOraCab.Parambyname('INTERFACE_FUNCTION').AsString := 'SQL';
QOraCab.Parambyname('INTERFACE_COUNTRY').AsString := 'CL';
QOraCab.ExecSQL;
 
DbOracle.Commit;
 
except;
  DbOracle.Rollback
end;




Saludos. (Oracle es de mis favoritos)


La franja horaria es GMT +2. Ahora son las 10:18:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi