sobre la conexion a mysql!!!!!

Moderador: yalmar

Foro cerrado salvo peticion.

sobre la conexion a mysql!!!!!

Notapor igcwuc » Vie Ene 06, 2006 3:53 pm

sobre la conexion a mysql de builder 6, me respondieron que builder tiene en las pestañitas superiores secciones de bases de datos, y que revisa las referencias a cada elemento para porder establecer una conexion.
en una de las preguntas de esta seccion lei que existe un OBDC, generico es ODBC MySQL.
necesito forsosamente este OBDC para hacer la conexion?
la verdad nunca he manejado c bulder con bases de datos y soy super novata en esto :shock: , les agradeceria si me ayuda.
sale!
bye!
:D
igcwuc
Novato
Novato
 
Mensajes: 4
Registrado: Mié Ene 04, 2006 2:47 pm


Notapor kloud » Mar Ene 31, 2006 11:50 am

Hola, existe un parchecito que te añade la pestaña de conexion para MySql, se llama mysqldac y puedes descargarte una version trial. Un saludo y espero que te sirva de ayuda.
kloud
Novato
Novato
 
Mensajes: 1
Registrado: Vie Ene 27, 2006 9:10 pm


MySQL y C++Builder

Notapor konter232 » Mar Jul 11, 2006 1:19 pm

Hola q tal espero y les sirva todavia de algo la respuesta.
Yo tengo algo de tiempo trabajando con C++ builder 6 y eh desarrollado aplicaciones cliente servidor con BD mysql y hasta el momento trabajan muy bien.
Los componentes q utilize para realizar la conexion son los q trae ya instalados el c++ builder para bases de datos.
Previamente instale el MyODBC para poder configurar los ODBC q utiliza la aplicacion.
konter232
Novato
Novato
 
Mensajes: 1
Registrado: Mar Jul 11, 2006 1:05 pm

sobre la conexion a mysql!!!!!

Notapor galus » Lun Oct 23, 2006 4:22 am

Hola!

Aqui dejo un programa en "C++ builder" superbásico que establece una conexión con una BBDD MySQL, y muestra el contenido de una tabla en un ListBox llamado lbxResultados.

Para que vaya correctamente, será necesario añadir al proyecto (Add to Project) la cabecera MySQL.h (incluida en la carpeta donde está el servidor MySQL) y la librería libmySQL.lib.

Si no teneis esta última, podeis lograrla de la siguiente manera: copiar la librería libmySQL.dll a la carpeta "bin" del builder. Desde el simbolo del sistema (pantalla negra) ejecutar los siguiente:

C:\directorio>implib.exe libmysql.lib libmysql.dll

Y lograreis la libmySQL.lib que tendreís que añadir al proyecto.

Bueno, pues lo que queda es copiar lo siguiente en vuestro modulo principal (Unit1.cpp, Main.cpp...). No os olvideis de declarar la función showContents en la cabecera Unit1.h

----------------------------------------------------------------------


#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <vcl.h>
#pragma hdrstop
#include <winsock2.h>
#include "mysql.h"

// cambir según mi configuración
#define TABLE_OF_INTEREST "tabla"
#define SERVER_NAME "localhost"
#define DB_USER "root"
#define DB_USERPASS ""
#define DB_NAME "proba"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
MYSQL *hnd=NULL; // conexión MySQL
const char *sinf=NULL; // información del servidor MySQL
String tempo_sinf;


hnd = mysql_init(NULL);
if (NULL == mysql_real_connect(hnd,SERVER_NAME,DB_USER,DB_USERPASS,DB_NAME,0,NULL,0))
{
ShowMessage("Problema al conectarse a la base de datos "DB_NAME" en "SERVER_NAME);
}
else
{
ShowMessage("Conectado a la base de datos "DB_NAME" en "SERVER_NAME" como usuario '"DB_USER"'");
sinf = mysql_get_server_info(hnd);

if (sinf != NULL)
{
showContents(hnd,TABLE_OF_INTEREST);
}
else
{
ShowMessage("No se ha podido lograr la información del servidor");
}

mysql_close(hnd);
}
}
//---------------------------------------------------------------------------

void TForm1::showContents(MYSQL *handle,const char *tbl)
{
MYSQL_RES *res=NULL; // resultado de la sentencia
MYSQL_ROW row; // una fila del resultado obtenido
char sql[1024], // sentencia SQL a usar
commastr[2]; // para poner comas en el texto a mostrar
int i,numf=0; // numero de campos obtenidos
String tempo_tbl;
String tempo_resultado;

tempo_tbl=tbl;
memcpy(sql, "select * from tabla",100);

if (!mysql_query(handle,sql))
{
res = mysql_use_result(handle);
if (res)
{
numf = mysql_num_fields(res);
row = mysql_fetch_row(res);
while (row)
{
commastr[0]=commastr[1]=(char)NULL;
for (i=0;i<numf;i++)
{
if (row[i] == NULL)
{
tempo_resultado=tempo_resultado+commastr;
}
else
{
tempo_resultado=tempo_resultado+commastr+row[i];
}
commastr[0]=',';
}
this->lbxResultados->Items->Add(tempo_resultado);

row = mysql_fetch_row(res);
}

mysql_free_result(res);
}
else
{
ShowMessage("No se ha podido mostrar el resultado");
}
}
else
{
ShowMessage("No se ha podido ejecutar la sentencia");
}
return;
}

--------------------------------------------------------------------------------
galus
Novato
Novato
 
Mensajes: 3
Registrado: Lun Oct 16, 2006 9:33 am

Re: sobre la conexion a mysql!!!!!

Notapor thecult » Dom Dic 14, 2008 8:05 am

galus eres un maestro

no sabes lo que te agradezco esta explicación, ha sido un alivio encontrarte

(no conseguía conectar a mysql mediante c++builder SIN ODBC)

MUCHAS GRACIAS, funciona de maravilla

un saludo


galus escribió:Hola!

Aqui dejo un programa en "C++ builder" superbásico que establece una conexión con una BBDD MySQL, y muestra el contenido de una tabla en un ListBox llamado lbxResultados.

Para que vaya correctamente, será necesario añadir al proyecto (Add to Project) la cabecera MySQL.h (incluida en la carpeta donde está el servidor MySQL) y la librería libmySQL.lib.

Si no teneis esta última, podeis lograrla de la siguiente manera: copiar la librería libmySQL.dll a la carpeta "bin" del builder. Desde el simbolo del sistema (pantalla negra) ejecutar los siguiente:

C:\directorio>implib.exe libmysql.lib libmysql.dll

Y lograreis la libmySQL.lib que tendreís que añadir al proyecto.

Bueno, pues lo que queda es copiar lo siguiente en vuestro modulo principal (Unit1.cpp, Main.cpp...). No os olvideis de declarar la función showContents en la cabecera Unit1.h

----------------------------------------------------------------------


#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <vcl.h>
#pragma hdrstop
#include <winsock2.h>
#include "mysql.h"

// cambir según mi configuración
#define TABLE_OF_INTEREST "tabla"
#define SERVER_NAME "localhost"
#define DB_USER "root"
#define DB_USERPASS ""
#define DB_NAME "proba"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
MYSQL *hnd=NULL; // conexión MySQL
const char *sinf=NULL; // información del servidor MySQL
String tempo_sinf;


hnd = mysql_init(NULL);
if (NULL == mysql_real_connect(hnd,SERVER_NAME,DB_USER,DB_USERPASS,DB_NAME,0,NULL,0))
{
ShowMessage("Problema al conectarse a la base de datos "DB_NAME" en "SERVER_NAME);
}
else
{
ShowMessage("Conectado a la base de datos "DB_NAME" en "SERVER_NAME" como usuario '"DB_USER"'");
sinf = mysql_get_server_info(hnd);

if (sinf != NULL)
{
showContents(hnd,TABLE_OF_INTEREST);
}
else
{
ShowMessage("No se ha podido lograr la información del servidor");
}

mysql_close(hnd);
}
}
//---------------------------------------------------------------------------

void TForm1::showContents(MYSQL *handle,const char *tbl)
{
MYSQL_RES *res=NULL; // resultado de la sentencia
MYSQL_ROW row; // una fila del resultado obtenido
char sql[1024], // sentencia SQL a usar
commastr[2]; // para poner comas en el texto a mostrar
int i,numf=0; // numero de campos obtenidos
String tempo_tbl;
String tempo_resultado;

tempo_tbl=tbl;
memcpy(sql, "select * from tabla",100);

if (!mysql_query(handle,sql))
{
res = mysql_use_result(handle);
if (res)
{
numf = mysql_num_fields(res);
row = mysql_fetch_row(res);
while (row)
{
commastr[0]=commastr[1]=(char)NULL;
for (i=0;i<numf;i++)
{
if (row[i] == NULL)
{
tempo_resultado=tempo_resultado+commastr;
}
else
{
tempo_resultado=tempo_resultado+commastr+row[i];
}
commastr[0]=',';
}
this->lbxResultados->Items->Add(tempo_resultado);

row = mysql_fetch_row(res);
}

mysql_free_result(res);
}
else
{
ShowMessage("No se ha podido mostrar el resultado");
}
}
else
{
ShowMessage("No se ha podido ejecutar la sentencia");
}
return;
}

--------------------------------------------------------------------------------
thecult
Novato
Novato
 
Mensajes: 1
Registrado: Sab Mar 29, 2008 1:12 pm


    

Volver a C++ Builder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado