Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   MySQL y ADO desde Delphi 2010 (https://www.clubdelphi.com/foros/showthread.php?t=81942)

mjjj 07-01-2013 20:21:02

MySQL y ADO desde Delphi 2010
 
Estimados,
necesito modificar un registro de una base de dato Mysql desde Delphi 2010. Logré conectarme con componentes ADO.

Ahora bien, dentro la paleta dbGO, cuale es el mejor componentes para modificar un registro, existe algo similar a TIBSQL de Interbase?

Espero me puedan ayudar con algo de código para aprender a utilizar estos componentes.
Gracias

Neftali [Germán.Estévez] 08-01-2013 09:43:07

Pues debería haber alguno para Querys, ¿no?
Lo más sencillo (creo yo) es que utilices SQL.

Godzuki 10-01-2013 02:00:32

Creo que puedes usar los componentes de la categoria DataControls como tDBEdit para cambiar los datos de un campo de texto. Para usarlo solo agregalo al formulario, se vera igual a un tEdit, pero con la diferencia que puedes establecer un DataSource y un DataField que son la fuente de datos que contenga la lista y el campo de esa fuente de datos que deses ligar al DBEdit.

Se ajusta automaticamente el DBEdit al texto del registro actual y a demas puedes actualizar la informacion desde ahí.

Tambien puedes usar un segundo tADOQuery para ejecutar una sentencia UPDATE de MySQL y esa la puedes armar tu mismo desde codigo.

mjjj 16-01-2013 17:57:57

Finalmente utilice un Ado Query con la sentencia para modificar un registro, lo cual funciono perfecto como sigue.

Código Delphi [-]
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('UPDATE oc_users SET password=SHA('+quotedstr(edit1.Text)+') WHERE uid ='+quotedstr('mjequier'));
adoquery1.ExecSQL;

Ahora bien, en el caso de TIBSQL es necesario despues del execquery, hacer un commit a la transacción, es también necesario en ADO, o es suficiente con el código expuesto?

Por otro lado, esta aplicación la desarrollé en Delphi 2010, sobre Windows XP, donde tuve que instalar el respectivo conector a la BD MySQL (versión 5.2.3), y posterior configuración en Administrador de ODBC, DSN de sistema.
Sin embargo, la aplicación, fue pensada para ejecutarla en un Windows Server 2008, donde se igual forma instalé el conector (con el mismo nombre que en Win XP), pero me tira un error de diferencia del controlador.

Como se hace para distribuir aplicaciones con conección a BD MySQL, con componentes ADO ??

Espero me pudan ayudar.

mjjj 16-01-2013 21:32:34

Ayuda !!!
No puedo conectarme a MySQL, si no es desde el equipo donde se desarrollo la aplicación.
A pesar que si pruebo desde DSN de sistema la configuración del controlador.

Que puedo hacer !!

Neftali [Germán.Estévez] 17-01-2013 09:59:44

¿Has copiado los ficheros necesarios?
¿ Algún error?
¿Alguna pista?

Si no das más detalles es difícil saber qué puede estar pasando.

ozsWizzard 17-01-2013 11:00:19

Hace eones que no trato con ADO pero estos son los errores típicos que me encontré en su día.

¿Has instalado los mismos divers de MySql para ADO?
¿Tienes bien configurado el origen de datos ODBC, con el mismo nombre y todo?

mjjj 17-01-2013 12:29:39

Efectivamente, instale la misma versión en ambos equipos, sólo que en xp de 32 y en server 2008 de 64, podrá ser esto ?

He configurado el origen de datos de sistema con los mismas e idénticas características y aún así no funciona, será que debo hacer alguna otra cosa?

Espero me puedan ayudar a resolver esto.
Gracias

mjjj 17-01-2013 14:55:15

Agrego mas información...

En Windows XP (que es donde desarrollé la aplicación), tiene instalado el controlador bajado de la página de mysql, la última versión 5.2.3, en 32 Bit.
En Server 2008, tiene instalado el controlador también bajado de la página de mysql, misma version 5.2.3, pero de 64 bit.

En ambos casos, en el panel de control-herramientas administrativas-origenes de datos ODBC-DSN de sistema, configuré la conección (mismas e identicas características) y al pinchar en probar "Test" logro conectarme sin problema en ambos equipos.

Ahora bien, al ejecutar y conectarme a la BD el programa en Win XP funciona sin ningún problema, pero al ejecutarlo en Server 2008 me arroja el siguiente error.

"La arquitectura del DSN especificado no coincide entre el controlador y la aplicación"

Después de esto desinstalé el controlador de 64 bit, e instalé el de 32, pero al intentar agregar un DSN no me reconoce este controlador.

Espero que esta información ayude a resolver este misterio.
Gracias

ozsWizzard 21-01-2013 19:03:57

No soy muy ducho en esta materia pero sólo se me ocurre una cosa.

Mantener la conexión desactivada y abrir la conexión en tiempo de ejecución (leyendo los datos de un .ini).


La franja horaria es GMT +2. Ahora son las 21:09:07.

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