Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-06-2012
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Violación al ejecutar Query con MySQL

Vamos por partes. Tengo instalado MySQL Server 5.5 con el driver ODBC 5.1 y una conexión a la base de datos mediante TDatabase y TSession.

1. A pesar de estar definidos en los parámetros usuario y clave de la base de datos y estar puesto LoginPrompt a false siempre que empiezo la ejecución me pide ambos datos. No me importa porque es una aplicación que sólo voy a usar yo en local, pero me sorprende que lo haga. La conexión la hago así:
Código:
dAsociacion->Connected = false;
dAsociacion->Params->Clear();
dAsociacion->Params->Add("DATABASE NAME=asociacion");
dAsociacion->Params->Add("ODBC DSN=Asociacion_SQL");
dAsociacion->Params->Add("OPEN MODE=READ/WRITE");
dAsociacion->Params->Add("BATCH COUNT=200");
dAsociacion->Params->Add("LANGDRIVER=");
dAsociacion->Params->Add("MAX ROWS=-1");
dAsociacion->Params->Add("SCHEMA CACHE DIR=");
dAsociacion->Params->Add("SCHEMA CACHE SIZE=8");
dAsociacion->Params->Add("SCHEMA CACHE TIME=-1");
dAsociacion->Params->Add("SQLPASSTHRU MODE=SHARED AUTOCOMMIT");
dAsociacion->Params->Add("SQLQRYMODE=");
dAsociacion->Params->Add("ENABLE SCHEMA CACHE=FALSE");
dAsociacion->Params->Add("ENABLE BCD=FALSE");
dAsociacion->Params->Add("ROWSET SIZE=20");
dAsociacion->Params->Add("BLOBS TO CACHE=64");
dAsociacion->Params->Add("BLOB SIZE=32");
dAsociacion->Params->Add("USER NAME=root");
dAsociacion->Params->Add("PASSWORD=toledo");

sAsociacion->PrivateDir = ExtractFilePath(Application->ExeName);
sAsociacion->ConfigMode = cmSession;
sAsociacion->NetFileDir = ExtractFilePath(Application->ExeName) + "NetFile";

try
{
     sAsociacion->Active    = true;
     dAsociacion->Connected = true;
     sAsociacion->OpenDatabase(dAsociacion->DatabaseName);
}
catch(...)
{
}
donde dAsociacion es el TDatabase y sAsociacion es el TSession.

2. Tengo este TQuery:
Código:
SELECT num_socio, AES_DECRYPT(apellidos, 'Ju86Lfgsje340qW') apellidos, AES_DECRYPT(nombre, 'Ju86Lfgsje340qW') nombre, login_socio, activado FROM inscripciones WHERE activado = 'A' ORDER BY apellidos, nombre, num_socio
se ejecuta sin errores (al hacer el Open es cuando me pide usuario y clave de la base de datos). Con ese query quiero cargar un TListView de la siguiente forma:
Código:
for (; !Query->Eof; Query->Next())
{
     pItem = Lista->Items->Add();
     pItem->Caption = Query->FieldByName("apellidos")->AsString + ", " + Query->FieldByName("nombre")->AsString;
     pItem->SubItems->Add(Query->FieldByName("login_socio")->AsString);
     pItem->SubItems->Add(Query->FieldByName("num_socio")->AsInteger);
     pItem->SubItems->Add(Query->FieldByName("activado")->AsString);
}
Es un código que jamás me ha dado problemas, pero en este caso una vez que ha cargado el primer registro y hago el segundo Add me da este error:
Cita:
Acces violation at address xxxx in module IDOBC32.DLL
siempre en el segundo Add y de ahí no pasa. Le he dado mil vueltas y no entiendo por qué me da ese error.

Por si acaso he probado cambiando el TListView por un TDBGrid y funciona casi bien; y digo casi bien porque en las dos primeras columnas (apellidos y nombre) en vez de el contenido de las mismas aparece el litereal (VARBYTES).

3. Otra cosa: En el query hago que viaje el valor de la clave de encriptación de los datos porque no he conseguido reemplazarla por una variable de MySQL. Según el manual debería ser $Clave, pero le da lo mismo. ¿Por qué puede ser? No me gustaría tener que ponerla a capón.
Responder Con Cita
  #2  
Antiguo 22-06-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
usuario y clave

Cita:
Empezado por Angel.Matilla Ver Mensaje
1. A pesar de estar definidos en los parámetros usuario y clave de la base de datos y estar puesto LoginPrompt a false siempre que empiezo la ejecución me pide ambos datos.
ke tal Angel a mi me pasaba los mismo en una conexion a mysql con con dbexpress en XE2, le puse al sqlconnection la propiedad loginprompt en false y listo..

penosamente no te puedo ayudar mucho con tu problema ya que practicamente no he utilizado el ADO, siempre he trabajado Mysql con Zeos, no se que Delphi tengas tal vez si lo intentas con zeos te valla mejor

Saludos...
__________________
un tipo al cual la sociedad no le tiene el mas mínimo respeto no puede ser presidente....
Responder Con Cita
  #3  
Antiguo 24-06-2012
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Gracias por la respuesta, pero si lees el principio de mi mensaje indico que LoginPrompt está a false y lo que estoy usando son TDatabase, TSession y TQuery de la paleta DataAcces y ni TADO; los componentes Zeos no he sido capaz de instalarlos ni a tiros.

Lo úncio que se me ha olvidado es que uso C++ Builder 5.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema al ejecutar un query aagrlp640 Varios 2 02-04-2011 10:42:35
Ejecutar query look OOP 2 24-10-2007 11:14:05
ejecutar Query con Dbexpress oavch MySQL 3 27-07-2005 22:15:23
Ejecutar un StoredProcedure con Query rafita Conexión con bases de datos 5 11-06-2004 11:44:44
Error al ejecutar Query silviodp Conexión con bases de datos 4 22-04-2004 00:17:17


La franja horaria es GMT +2. Ahora son las 17:09:29.


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
Copyright 1996-2007 Club Delphi