PDA

Ver la Versión Completa : Secuencia para grabar Oracle


pruz
05-06-2008, 17:27:07
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
Solo necesito saber que instrucciones usar.





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
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:




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)