FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Conección Delphi 2007 a Oracle
Hola,
Tengo que convertir una aplicación Delphi 5 a Delphi 2007 pero no puedo conectarme a Oracle. La aplicación utiliza TStoredProc (s) cuya propiedad: DatabaseName apunta al nombre del db Oracle definido en BDE Administrator. Con Delphi 5 todo funciona bien, pero con Delphi 2007 recibo los siguientes errores: Cuando ejecuto la aplicación: „Project Simulate.exe raised exception class EDBEngineError with message ‚ Your Application is not enabled for use with this driver. Alias: prk’. “ Cuando, en design mode, trato de acceder a la propiedad DatabaseName de un TStoredProc el error es: An error occurred while attempting to initialize the Borland Database Engine(error $210D) (Si configuro BDE Administrator para acceder a Oracle con ODBC el error es el mismo pero el código cambia a $2A06) Tiene alguien alguna idea para resolver este problema? Muchas gracias de antemano Fernando |
#2
|
||||
|
||||
Ya que estas migrando, por que no contemplas utilizar ADO?, BDE es una tecnologia obsoleta.
Suerte
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
|||
|
|||
Acceso con ADO a Oracle Stored procedures desde Delphi 2007
Gracias Poliburro,
No tengo experiencia con ADO pero me pregunto si seria factible la conversion sin tener que hacer el cambio en cada Stored Procedure / Formulario ya que el proyecto es bastante extenso. Si alguien tiene una idea (o código disponible para acceder con ADO a Oracle Stored procedures desde Delphi 2007 ) les agradezco nuevamente de antemano Fernando |
#4
|
|||
|
|||
Algunas ideas adicionales
Hola,
En el caso del driver nativo BDE es probable que tenga alguna incompatibilidad con la versión de Oracle; pero en el caso del ODBC es un poco raro porque debería manejar un standard. Quizás sería bueno intentar con otro driver ODBC. Paralelamente, te ocurre con todos los Stored Procedure ?. Pasa lo mismo si los invocas directamente vía el SQL Explorer ?. |
#5
|
|||
|
|||
ADO parámetros para Oracle Stored Procedure
Gracias a todos por su ayuda pero parece que con Delphi 2007 no es facil acceder a un Stored Procedure Oracle, ni con BDE ni con ADO.
Para probar la conección con ADO he creado una aplicación muy sencilla. Al correr el código: procedure TForm1.Button1Click(Sender: TObject);Hay un error que dice que hay incompatibilidad en el número o tipo de parámetros. Luego de mucha busqueda en la Internet he encontrado una posible solución a este error y esta sería añadir a ConnectionString: Extended Properties="PLSQLRSet=1" pero luego de ejecutar el código el error es el mismo!! Agradezco enormemente a alguien que pueda proporcionar alguna información para resolver este problema Los controles TADOStoredProc y TADOConnection están definidos en Design view: (Tanto la conección como el acceso a los diferentes Procedures del banco de datos estan correctos) object ADOConn1: TADOConnection Connected = True ConnectionString = 'Provider=OraOLEDB.Oracle.1;Password=password;Persist Security Inf' + 'o=True;User ID=userid;Data Source=prk_server;Extended Properties="' + 'PLSQLRSet=1"' Provider = 'OraOLEDB.Oracle.1' Left = 16 Top = 8 end object StpShowParking: TADOStoredProc Connection = ADOConn1 ProcedureName = 'SHOW_PARKING' Parameters = < item Name = 'CSR' Attributes = [paNullable] DataType = ftInterface Direction = pdInputOutput Value = Null end> El Stored Procedure de Oracle es: CREATE OR REPLACE PROCEDURE "SHOW_PARKING" / ( csr IN OUT pck_int_cursors.csr_all) AS BEGIN OPEN csr FOR SELECT parking.prk_id, ... |
#6
|
|||
|
|||
Fijate como ejecutas el SP
Yo lo hice con SQL Server y no Oracle a traves de ADO
utilizando un comando, pero es lo mismo si ejecutas desde la conexion ADO Supongamos q tu conexion se denomina Conx: Conx.Execute( 'mySP ' + param1 + ', ' + param2 + ', ' + paramN ); Donde mySP es el nombre del Stored Procedure Te copio un poco de codigo y perdon por el desorden, pero al editar no te muestran las etiquetas de codigo with Data.adoCMD do begin CommandType := cmdStoredProc; CommandText := 'dbo.SP_COMPRAS_INSERT'; Parameters.Clear; Parameters.CreateParameter( '@Id_Compra' , ftLargeInt , pdOutput , 20, 0 ); Parameters.CreateParameter( '@Id_Proveedor' , ftLargeInt , pdInput , 20, StrToInt( txtProveedor.Text ) ); Parameters.CreateParameter( '@Tipo_Comprobante' , ftString , pdInput , 3 , cbTipoDOC.Text ); Parameters.CreateParameter( '@Nro_Comprobante' , ftString , pdInput , 13, txtComprobante.Text ); Parameters.CreateParameter( '@FechaRecepcion' , ftDate , pdInput , 10, Date ); Parameters.CreateParameter( '@MontoIVA' , ftCurrency , pdInput , 20, StrToFloat( txtIVAGral.Text ) ); Execute; end; adoCMD es un adocommand q esta en un datamodule Saludos y Exitos Última edición por waly2k1 fecha: 19-09-2007 a las 11:10:16. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Lanzamiento Delphi 2007, PHP y JBuilder 2007 R2 Santiago - Chile | Andreano | Noticias | 4 | 14-05-2007 09:25:23 |
delphi 2006 / delphi 2007 y Visual estudio 2005 | avmm2004 | Varios | 2 | 13-04-2007 20:50:07 |
Lanzamiento de Delphi 2007 y Delphi para PHP en Bogotá - Colombia | Andreano | Noticias | 9 | 25-02-2007 19:09:42 |
Conección de Datos Delphi - Rave | gaps2k | Impresión | 0 | 14-02-2007 17:05:45 |
problemas en coneccion delphi 6.0 con interbase 6.0 | onasis | Firebird e Interbase | 1 | 02-06-2005 22:50:47 |
|