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

 
 
Herramientas Buscar en Tema Desplegado
  #20  
Antiguo 12-01-2008
Avatar de grandmasterdari
grandmasterdari grandmasterdari is offline
Miembro
 
Registrado: ene 2008
Posts: 46
Poder: 0
grandmasterdari Va por buen camino
Thumbs up Solucionado

antes que nada sepan disculpar mi estupidez, y gracias por su tiempo.

la idea era esta:
1) que el programa (al iniciar) compruebe la conexion con el motor de base de datos
2) que compruebe (al iniciar) si existe la base de datos con la que vamos a trabajar
3) que compruebe si estan todas las tablas que vamos a utilizar

este es una parte del codigo para comprobar, conexion, base de datos y tablas,

Código:
void __fastcall TForm1::FormCreate(TObject *Sender)//se ejecuta cuando se crea el formulario principal
{

	//comprobacion de conexion
	SQLConnection1->Connected=true;
	if(SQLConnection1->Connected==false){
		MessageBox(NULL,"No se puede establecer la conexion con la base de datos","Error",MB_OK);

		//bloquear botones
		Button8->Enabled=false;  //boton login

	}
	else{
		//comprobacion de base de datos
		SQLQuery1->SQL->Clear();
		SQLQuery1->SQL->Add(codec("show databases");
		SQLQuery1->Open();
		while((!SQLQuery1->Eof)&&((SQLQuery1->FieldByName("Database")->AsString)!="sircdb"))
			SQLQuery1->Next();
		if(SQLQuery1->Eof==true){
			MessageBox(NULL,"No se encuentra la base de datos sircdb","Error",MB_OK);

			//bloquear botones del formulario principal, por ahora tengo 1 nomas
			Button8->Enabled=false;  //boton login
			SQLQuery1->Close();//cierro por las dudas, no se si hace falta ya que el programa solo da la opcion para cerrarse
		}
		else{
			//uso de la base de datos, que ya se que existe
			SQLQuery1->Close();
			SQLQuery1->Open();
			SQLQuery1->SQL->Clear();
			SQLQuery1->SQL->Add("use sircdb;");
			SQLQuery1->ExecSQL(true);//para poder ejecutar el comando
                        //en esta parte empiezo a contralar si estan todas las tablas
			SQLQuery1->SQL->Clear();
			SQLQuery1->SQL->Add("show tables;");
			SQLQuery1->Open();//jejeje. no hay error.
                        //y aqui deberiamos hacer el mismo recorrido anterior (while(!SQLQuery1->Eof  bla bla))
                        //con los condicionales necesarios para la comprobacion de todas las tablas


		}//cierro el else de db
	}//cierro el else de conexion
	SQLQuery1->Close();
}
encontre el error gracias a jachguate porque dijo esto
"Bueno... la verdad desconozco si en mySQL es un query válido eso de use basededatos;, pero si lo es, dudo que devuelva un cursor"
y es verdad, realice un "use basededatos" (en mi codigo "use sircdb"), y esto no devuelve un cursor por eso no se puede realizar el metodo "SQLQuery1->Open()", solo se puede el "SQLQuery1->ExecSQL()"


gracias a jachguate, caral, keyboy y egostar por ayudar

Última edición por grandmasterdari fecha: 12-01-2008 a las 03:58:34.
Responder Con Cita
 


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
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


La franja horaria es GMT +2. Ahora son las 22:19:34.


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