Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

CONEXION A BD

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: CONEXION A BD Responder citando

Regular mente me conecto a una base de datos por medio de fuentes ODBC o los componentes OLE, pero quisiera saber si hay formas mas seguras y rapidas de hacer lo mismo. y como le hago para escojer diferentres bases de datos en una misma aplicacion. (BCB 6 y MySql)
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Precisamente eso tengoque hacer, mas o meno ya vi que lo podemos hacer con los controles ADO, ya que ahi enviamao una cadenad e conexion, donde cambiar la base de datos ..si logro algo envio codigo..saludos
_________________
Ing. Gabriel Góngora Navarrete
TouchSoftwares Inc

http://www.touchsoftwares.com
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Gracias touch Responder citando

espero y lo podamos resolver, si yo lo logro antes tambien publico el codigo

suerte
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Aquí un ejemplo para conectarse a MySQL.

https://cppbuilder.es/viewtopic.php?t=10976&highlight=mysql

Saludos
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Yo encontré esto en la red y se me olvidaros los problemas de buscar conexionstring...
Código:
WideString WResult = PromptDataSource((int)Application->Handle, "");
if (WResult.Length()>9) {
   ADOCn->ConnectionString = WResult;
   // ...

Esto lo coloco en el click del boton conectar, el ADOCn es el componete ADOConnection que coloco en el formulario (con loginpromt a false).
Yo lo utilizo indistintamente para abrir bases de datos msaccess como las configuradas con odbc, que son por ahora de informix, postgresql, y tambien firebird (aconsejable para los que quieran especializarse en una)
Es mas, con dos conexiones estoy migrando los datos de access a odbc.

Muestro el codigo real para ver las tablas, y tiene un poco de lio ya que para posgresql mostraba las de sistema, yo al configurar los odbc los 5 primeros caracteres les pongo el nombre del sistema que utilizo (en el ejemplo vereis porque)
Código:
void __fastcall TfInicial::mnAbrClick(TObject *Sender)
{
   if (xAp.nTp > 0) {
      ShowMessage("Es necesario cerrar la conexion actual a " + cDB);
      return;
   }
   //WideString WCEStr = "";    No necesario
   WideString WResult = PromptDataSource((int)Application->Handle, ""); //WCEStr
   if (WResult.Length()>9) {
      TStringList * lstVl = new TStringList;
      lstVl->Delimiter = ';';
      lstVl->StrictDelimiter = true;
      lstVl->DelimitedText = WResult;
      cDB = lstVl->Values["Data Source"];
      if (cDB.SubString(1,5).UpperCase() == "POSTG")
         xAp.nTp = 2;
      else
         xAp.nTp = 3;

      ADOCn->ConnectionString = WResult;
      xAp.nR  = 1;

      Mensaje("Abriendo base de datos...");

      try {
         ADOCn->Open();

         MuestraTbl();

         mnu2->Visible = true;
         }
      catch(Exception &E) {
         ShowMessage(E.Message);
         xAp.nTp = 0;
         }

      Mensaje("");
      delete lstVl;

      }

}
//---------------------------------------------------------------------------

void __fastcall TfInicial::MuestraTbl()
{
//En form  TStringList *slTb = new TStringList;
   slTb->Clear();

   TfTablas * fTbs = new TfTablas(this);
   fTbs->Height = 285;
   fTbs->Width  = 240;

   if (xAp.nTp == 2) {
      //Solo con postgresql
      TADOQuery *ADOQr = new TADOQuery(ADOCn);
      ADOQr->Connection = ADOCn;
      //ADOQr->SQL->Clear();
      ADOQr->SQL->Add("Select tablename From pg_tables Where schemaname = 'public'");
      ADOQr->Open();
      while (! ADOQr->Eof) {
         slTb->Add(ADOQr->Fields->Fields[0]->AsString);
         ADOQr->Next();
      }
      ADOQr->Close();
      delete ADOQr;
   }
   else
      ADOCn->GetTableNames(slTb, false);


   for (int i=0; i<slTb->Count; i++)
      fTbs->lsTbl->Items->Add(slTb->Strings[i]);

}
//---------------------------------------------------------------------------


Tambien si trabajas con varios sistemas de DDBB verás que cada uno tiene sus particularidades al actualizar/insertar datos (sobre todo la fecha!), por eso lo comentado de utilizar los 5 primeros caracteres con el nombre del sistema.
Espero que os sirva algo de esto.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: MyOLEDB Responder citando

aqui les dejo el link a myOLEDB para no tener que usar ODBC. Esto soluciona gran parte d los problemas que ocasiona la conexion por medio de DNS

http://sourceforge.net/projects/myoledb/
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.