![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Muevo el hilo del foro SQL al foro de mySQL, pues el problema está relacionado con esa base de datos y no con el lenguaje SQL en si.
Insisto en el uso de etiquetas, solo que esta vez, te toca a vos editar el mensaje y ponerlas. ![]() Finalmente, siempre he creido que mySQL tiene un dialecto muy extraño. ¿Estas seguro que la instrucción show tables es un SQL válido para ese motor? Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#3
|
||||
|
||||
|
El que la herramienta lo acepte, no significa que sea un query válido para el motor.
El mismo comando existe, por ejemplo, en isql de firebird, pero es esta herramienta quien la traduce en el query adecuado. En ese caso podría ser:
Esto lo digo para afirmar mi postura que pueda no ser un sql válido. Realmente desconozco si lo sea o no en el caso de mysql. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#4
|
||||
|
||||
|
no conozco el isql de firebird, tambien esos comandos son desconocidos para mi, para darle fuerza a mi codigo tengo un ejemplo en esta pagina
pagina en el cual tiene un codigo (dentro de un zip) que realiza lo mismo que yo ****codigo bajado de otra pagina**** Código:
#include <vcl.h>
#pragma hdrstop
#include "mydbexprForm.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ButtonOpenClick(TObject *Sender)
{
ClientDataSet1->Close();
ClientDataSet1->Open();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
SQLQuery1->SQL->Clear();
SQLQuery1->SQL->AddStrings( MemoQuerySQL->Lines);
SQLQuery1->Open(); // --- aqui ---
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
ClientDataSet1->ApplyUpdates(0);
}
aparentemente hay que retornar el cursor antes de realizar otro "open()" del SQLQuery1, la pregunta es ¿cómo? Última edición por grandmasterdari fecha: 11-01-2008 a las 23:29:51. |
|
#5
|
||||
|
||||
|
No hay que retornar nada. Si está abierto, lo cerras con close y luego lo abris con open.
He visto un mensaje de error similar al tuyo, en otros motores. Ocurre cuando el query no retorna un cursor (según dice el propio mensaje) , que es cuando el query contiene instrucciones como insert/update/delete. En ese caso, en lugar de open (que "abre el query", es decir, procesa el cursor devuelto), se utiliza el método ExecSQL, que ejecuta la sentencia pero no espera obtener un cursor a cambio.Espero haberme explicado y que de alguna ayuda te sirva. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#6
|
||||
|
||||
|
claro al ocupar el "SQLQuery1->ExecSQL()", ejecuta la instruccion sql que esta en el atributo SQLQuery1->Text, pero e de aqui, que yo necesito los resultados de la consulta, para poder trabajar con esta,
![]() |
|
#7
|
|||
|
|||
|
En el código que pones no cierras la primera consulta antes de abrir la segunda. No me parece muy lógico, pero puede ser que por ahí esté el problema, aunque más parece ser problema del driver en cuestión. Y confirmo que "show tables" sí es una consulta SQL válida para MySQL y, similar al SELECT, regresa un cursor, esto es, un conjunto de registros, que para el Dataset debe ser exactamente lo mismo. Por ello es que pienso que se trata de un driver defectuoso.
Bye |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Error Creating cursor handle | jose_205711 | Conexión con bases de datos | 3 | 06-11-2010 10:04:02 |
| Error creating cursor handle | miguel_fr | SQL | 6 | 02-01-2007 12:47:09 |
| Error: puntero no regresa de la consulta o Cursor not Returned from query | The_figo | MySQL | 0 | 23-11-2006 20:08:55 |
| error "Subquery returned more than 1 value" | lynu | SQL | 1 | 14-08-2006 16:16:25 |
| ¿Por qué me da este error?Error creating cursor manejador | nuri | SQL | 2 | 01-08-2005 17:30:28 |
|