Club Delphi  
    Paypal   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 01-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Vale, no sabía que se puede hacer dos sentencias con el mismo TZQuery y me ha funcionado bien. Gracias.

Saludos
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #2  
Antiguo 01-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por enecumene
no sabía que se puede hacer dos sentencias con el mismo TZQuery
Estee.. Más bien es lo que no se puede hacer. A ver, hasta donde yo sé, MySQL no acepta sentencias múltiples en una misma consulta, por ello no se puede poner

Código Delphi [-]
ZQuery1.SQL.Add('set @fila = 0');
ZQuery1.SQL.Add('select @fila := @fila + 1 as fila, clave, nombre from solicitante');

y ejecutar la consulta. Hay que hacerlo por separado. No es que se hagan dos consultas, sólo estás reusando el ZQuery. Lo mismo podría hacerse con dos ZQuery

Código Delphi [-]
ZQuery1.SQL.Text := 'set @fila = 0';
ZQuery1.ExecSQL;

ZQuery2.SQL.Text :=
  'select @fila := @fila + 1 as fila, clave, nombre from solicitante';
ZQuery2.Open;

// Saludos
Responder Con Cita
  #3  
Antiguo 01-07-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 24
enecumene Va por buen camino
Ahh ok, ya entendí, ahora lo tengo más claro, de nuevo gracias Roman.

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #4  
Antiguo 02-07-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
ahora que he visto lo de la ejecución de dos sentencias como bien ha comentado Roman, me gustaría saber si con un TAdoQuery + ODBC + MySQL funcionaría también....
Responder Con Cita
  #5  
Antiguo 02-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues podrías hacer la prueba, yo ya la hice con PHP y Zeos, te toca a tí

Pero no veo razon por la cual no funcione, ya que es una característica de MySQL y no de las componentes que se usen. El único requisito que veo es que ambas consultas se realicen bajo la misma conexión.

// Saludos
Responder Con Cita
  #6  
Antiguo 03-07-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Pues por lo que he probado no me funciona. No me reconoce la variable @fila en la segunda consulta:

Código:
AdoQuery1.SQL.Add('set @fila = 0');
AdoQuery1.ExecSQL;

AdoQuery1.sql.clear;
AdoQuery1.SQL.Add('select @fila:= @fila + 1 as fila, Cod_Factura, 
Importe_Total from facturas');
AdoQuery1.Open;
Tengo un TAdoConnection con el siguiente conectionstring:

Código:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=ANDC;
Extended Properties="DATABASE=andc;DESCRIPTION=Analitica DC;DSN=ANDC;
OPTION=0;PORT=0;SERVER=intranetdes;UID=andc"
El Adoquery1 utiliza dicha conexión.

La versión de MySql es 5.0.19.nt y el Driver ODBC es MyODBC Driver 3.51.
Es como si cada ejecución de consulta la tratara como una sesión distinta con lo que no reconoce la variable ya creada. Alguna idea????

Saludos, Tony
Responder Con Cita
  #7  
Antiguo 03-07-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hola Tony,

Acabo de probar y me marca este error:

Cita:
Objeto Parameter mal definido. Se proporcionó información incompleta o incoherente.
Al parecer los dos puntos los confunde con un parámetro (y ahora me pregunto ¿cómo es que a ZEOS no le pasalo mismo?).

Afortunadamente he podido solucionarlo diciéndole que haga caso omiso del "parámetro":

Código Delphi [-]
AdoQuery1.SQL.Text := 'set @fila = 0';
AdoQuery1.ExecSQL;

ADOQuery1.ParamCheck := false; // <-- añadir esto

AdoQuery1.SQL.Text :=
  'select @fila := @fila + 1 as fila, clave, nombre from solicitante';
AdoQuery1.Open;

aunque me queda la duda de qué hacer en caso de que realmente tengamos algún parámetro en la consulta.

La cadena de conexión que usé:

Cita:
DRIVER={MySQL ODBC 3.51 Driver};SERVER=server;DATABASE=database;USER=user;PASSWORD=password;OPTION=3
y también con el driver 5.1.

// Saludos
Responder Con Cita
  #8  
Antiguo 05-07-2008
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 23
lucasarts_18 Va por buen camino
Hola.

Disculpen por haber abandonado este hilo, recien he tenido un tiempo para retomar esto, gracias enecumene y Román, funciona perfecto, no conocía esto de los SET en mysql, solo en MS-SQL Server , por eso mi equivocación inicial.

Mil Gracias, hasta la próxima.

Bye.
__________________
No todo es como parece ser...
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
Enumerar las Pc's en una LAN Saindoft Redes 1 02-06-2008 22:48:24
Enumerar usuarios conectados a tu pc fide API de Windows 4 21-01-2007 17:08:50
Como Validar Filas en Select? AGAG4 SQL 9 30-12-2005 20:05:19
Como enumerar filas de un DBGrid sin agregar otro campo Velia Varios 2 06-12-2005 08:58:57
Enumerar con Letras torito Varios 4 20-07-2005 14:57:23


La franja horaria es GMT +2. Ahora son las 19:50:24.


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