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)
-   -   Problema ingreso Datos BD (BDE) (https://www.clubdelphi.com/foros/showthread.php?t=83334)

gersojn 05-06-2013 17:47:22

Problema ingreso Datos BD (BDE)
 
Hola amigos, estoy elaborando una aplicacion con conexion a BD, anteriormente habia utilizado ZeosLib para esta tarea, pero recientemente migre a Delphi XE4 y actualmente no hay soporte aun por lo que investige.

Trabajando con BDE estableci la conexion a la BD (con Oracle XE) y hasta aca todo bien. Agrege un TTable y carge una tabla, y luego agrege un TDataSource asociado a la TTable. Lo que busco es hacer insercciones y demas dentro de la aplicacion, para ello asocie el TDatasource con los componentes TDBGrid y TDBNavigation al TDataSource.

El resultado de todo es que me muestra los campos e informacion, pero hasta ahi, no me permite hacer ninguna accion mas, ni hacerle update, eliminaciones o insercciones a la tabla, no se que esta mal.

Estoy trabajando con Delphi XE4, Windows 7 64 Bits, un parametro extraño es que al iniciar la APP y pedirme las credenciales (en el origen de datos tengo el user de mi BD) me muestra el user de la BD y al ingresale el password me vuelve a tirar el prompt de login, pero ya sin el usuario y despues de el user y password ya ingresa, no se si esto tendra algo que ver.
Desde ya muchas gracias por la ayuda que puedan brindarme con el tema o si supieran alguna forma de instalar ZeosLib en Delphi XE4 tambien les estaria muy agradecido.
Saludos.

Casimiro Notevi 05-06-2013 18:02:45

BDE es muy obsoleto, si es para oracle ¿has probado DOAC (Delphi Direct ORACLE Access Components)?

gersojn 05-06-2013 18:24:49

Cita:

Empezado por Casimiro Notevi (Mensaje 461819)
BDE es muy obsoleto, si es para oracle ¿has probado DOAC (Delphi Direct ORACLE Access Components)?

Hola amigo, gracias por la pronta respuesta, ya baje DOAC y lo intente compilar e instalar, pero no me funciona y revisando encontre en la descripcion de DOAC lo siguiente:

"Delphi Components for direct (without BDE) access to ORACLE 7.3/8/8i Server from Delphi 4,5,6,7.
Full implementation of ORACLE BLOB and CLOB fields.
Possibility to execute stored procedures and parts of PL/SQL code.
Fast and powerful tables in memory."



Al parecer este componente es compartible con Oracle 7.3/8 y 8i, en cuando a Delphi trabaja con 4,5,6,7 , no se si por ello es que no pueda utilizarlo?
Gracias por la ayuda y respuestas.

Casimiro Notevi 05-06-2013 18:38:50

Cita:

Empezado por gersojn (Mensaje 461822)
pero no me funciona

¿Y con eso quieres que te ayudemos? ;)
¿Qué quiere decir que no te funciona?, que una vez instalado pones un componente, ejecutas el programa y no devuelve datos?

Si no puedes instalarlo entonces prueba a modificar el fichero: dOCI.inc
Sustituye su contenido:
Código:

//{$DEFINE ADEBUG}
 
{$IFDEF VER120}
 {$DEFINE D4}
{$ENDIF}
 
{$IFDEF VER130}
 {$DEFINE D5}
{$ENDIF}
 
{$IFDEF VER140}
 {$DEFINE D6}
{$ENDIF}
 
{$IFDEF VER150}
 {$DEFINE D7}
{$ENDIF}
 
{$IFNDEF D4}
  {$DEFINE D5_OR_HIGHER}
  {$IFNDEF D5}
    {$DEFINE D6_OR_HIGHER}
    {$IFNDEF D6}
      {$DEFINE D7_OR_HIGHER}
    {$ENDIF}
  {$ENDIF}
{$ENDIF}
 
{$DEFINE dOCI_ENGLISH}
//{$DEFINE dOCI_RUSSIAN}

Por esto otro:
Código:

{$DEFINE D7_OR_HIGHER}
 
{$DEFINE dOCI_ENGLISH}

Por probar que no quede.

gersojn 05-06-2013 18:58:10

Hola amigo, gracias por la ayuda, ya modifique el archivo DOCI.inc con el contenido. Cuando trato de compilar dOCI7IDesing.bpl obtengo los 4 siguientes errores, mismo que me muestras al tratar de instalar el componente.

Cita:

[dcc32 Error] DynamicArrays.pas(1936): E2251 Ambiguous overloaded call to 'StrPas'
System.SysUtils.pas(11512): Related method: function StrPas(const PAnsiChar): AnsiString;
System.SysUtils.pas(11518): Related method: function StrPas(const PWideChar): string;

[dcc32 Warning] DynamicArrays.pas(1936): W1000 Symbol 'StrPas' is deprecated: 'Moved to the AnsiStrings unit'

[dcc32 Fatal Error] ADataSet.pas(11): F2063 Could not compile used unit 'DynamicArrays.pas'
En dOCI7Runtime al compilarlo o tratar de instalar me marca el error:
Cita:

[dcc32 Error] DynamicArrays.pas(1936): E2251 Ambiguous overloaded call to 'StrPas'
System.SysUtils.pas(11512): Related method: function StrPas(const PAnsiChar): AnsiString;
System.SysUtils.pas(11518): Related method: function StrPas(const PWideChar): string;
En dOCI6 al tratar de compilarlo o de instalar me marca el error.
Cita:

[dcc32 Error] DynamicArrays.pas(1936): E2251 Ambiguous overloaded call to 'StrPas'
System.SysUtils.pas(11512): Related method: function StrPas(const PAnsiChar): AnsiString;
System.SysUtils.pas(11518): Related method: function StrPas(const PWideChar): string;
En todos me marca error, no se cual sea la razon del problema, perdon por mi ignorancia y les agradezco por la ayuda, voy investigar si encuentro algo de esto por google, pero sigo atento al foro, pues me interesa mucho encontrarle una solucion a ellos.
Nuevamente muchas gracia por la ayuda.

Casimiro Notevi 05-06-2013 21:17:40

Ya que se ha modificado dOCI.inc para hacerle creer que es un delphi7 entonces deberías seguir los pasos para delphi7:

dOCI7Runtime.dpk need to be compiled first (do not press Install button)
dOCI7Design.dpk need to be compiled AND installed after dOCI7Runtime.dpk.



De todas formas puedes preguntar en la web de ellos por ese problema, que está claro que es por el unicode.
Con un poco de paciencia puedes solucionarlo, sustituyendo string por ansistring, etc.

gersojn 06-06-2013 01:53:01

Hola amigos, pues ahora ya estoy mas perdido que nunca. Al no tener mucho exito, decidi prestar un Delphi 2010, y instale ZeosLib 7 stable y todo normal, estableci la conexion sin problemas, carge una tabla, un data source y visualize los datos en un DBGrid.

Pero al momento de correr la aplicacion, tengo exactamente el mismo problema que con las otras Librerias, puedo visualizar los datos, pero nada mas, no puedo modificarlos, ni eliminarlos, ni hacer inserts, ni nada. Cambie el usuario de la Base de Datos por System, siempre accediendo a la misma tabla y es el mismo resultado.

Por seguridad trabajo con una cuenta Limitada en el S.O. pero no creo que eso sea el problema, ahora pienso que es problema puramente del S.O. ya que tiempo atras desarrolle aplicaciones con BD en Delphi 2010 y ZeosLib.
Alguien que pueda ayudarme en esto, si necesitas mas informacion con gusto solo me indican.
Utilizo Windows 7 64 Bits (Premium) Cuenta Limitada(no Administrador) del S.O. Oracle 10G, Delphi 2010 y ZeosLib
Desde ya gracias por la ayuda y molestias.
Saludos.

gersojn 06-06-2013 18:20:18

Hola amigos, gracias por la ayuda y molestias, ya solucione el problema, realmente no di cual era el problema, pero si encontre una solucion adicional y la posteo por si alguien se topa con una situacion similar, la solucion la encontre en un sitio en español, y la traduccion esta hecha con google:

Cita:

1) Instale el motor de base de datos (en el caso de Oracle XE)
2) Instalar el controlador ODBC (Sólo si Oracle no se instala por defecto)
/ / 3 y 4 podrían no aplicarse a Oracle
3) Vaya a Inicio-> Panel de control-> Herramientas administrativas-> Orígenes de datos (ODBC) -> System DSN-> Añadir ..
4) En la lista, seleccione el controlador de Oracle y proceda a completar la información necesaria.
5) Deja un TADOConnection en el formulario y haga clic en el ... para la propiedad ConnectionString.
6) aquí se puede hacer dos cosas, una es para seleccionar el proveedor de ODBC y seleccione la conexión que configuró en 3 y 4, o puede seleccionar el proveedor de Oracle e introduzca los datos del servidor.
7) Eliminar una tabla ADO / consulta en el formulario y enlazarlo a la TADOconnection a través de su propiedad de conexión.
8) Deja un TDatasource en el formulario y enlazarlo a la mesa de ADO / consulta a través de su propiedad Dataset
9) Deja un TDBGrid en el formulario y enlazarlo a la TDatasource a través de su propiedad DataSource.

Esto debería ser suficiente para establecer la conexión. Si todos los datos son correctos y aún no funciona puede que tenga que jugar con la configuración de red de Oracle o de su firewall. No he creado Oracle antes, pero esta es la norma. En el servidor de MSSQL tienes que configurar la forma en que se conecte al servidor (TCP / IP, la corriente de memoria, etc) antes de poder conectarse.
Con esto logre conectarme a Oracle 10g y Delphi XE4, y hacer insercciones, eliminaciones, updates, etc.
Saludos y gracias nuevamente amigos.


La franja horaria es GMT +2. Ahora son las 05:15:23.

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