Ver la Versión Completa : 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
Solo necesito saber que instrucciones usar.
Insert
InTo Tabla
(List of fields)
Values( List of values);
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.
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)
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.