Enviar Respuesta  Enviar Tema 
Mysql desde C
Autor Mensaje
mysqlde
Usuario PL


Mensajes: 3
Grupo: Registrado
Registro en: Mar 2008
Estado: Sin Conexión
Reputación: 0
Mensaje: #1
Mysql desde C

Hola estoy haciendo un programa para acceder a Mysql desde c (tiene que ser más rapido que PHP)

El problema que tengo es que no domino mucho el lenguaje...

Lo que quiero es lea toda una tabla y la guarde en un array, (Son todo numeros decimales)

Pero no se como hacerlo.

Os pongo el código.
#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"

MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
void err(void) {
fprintf(stderr, "%s\n", mysql_error(&mysql) );
exit(1);
}
int main()
{
int i,g;
int **p ;
int n=3000,m=3000,j=0;
unsigned nn[n][m];
p = (int**) malloc(n*sizeof(int*));

if(!(mysql_real_connect(&mysql,"localhost","root",
"mmm","bolsa",3306,NULL,0))) err();

if(mysql_query(&mysql,"SELECT * FROM cotizaciones")) err();
if(!(res = mysql_store_result(&mysql))) err();

while((row = mysql_fetch_row(res)))
{
p[j] = (int*)malloc(m*sizeof(int));
for (i=0 ; i < mysql_num_fields(res); i++)
{
p[i][j]=row[i];
/// Esto no funciona, quiero grabar el resultado en el ARRAY p
}
j++;
}
if (!mysql_eof(res)) err();
mysql_free_result(res);
mysql_close(&mysql);
return 0;
}

Saludos.

03-07-2008 06:28 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
german
Moderador
*****
Moderadores

Mensajes: 223
Grupo: Moderadores
Registro en: Apr 2006
Estado: Sin Conexión
Reputación: 3
Mensaje: #2
RE: Mysql desde C

Mirá, te recomiendo que vayas de a poco, primero hace el código de conexión de la base de datos y probalo, si anduvo, despues trata de hacer una consulta y mostralo por pantalla. De otra forma te va a tirar 20 errores y no vas a saber ni por cual empezar. Bueno, ese es el consejo que te doy si recien empezas con el lenguaje.

También ayudaría si especificás que error te tira.

Si me pasas el enlace del manual que estas leyendo por ahi te puedo orientar mejor.

Aca tenes un ejemplo si te sirve http://linuxfocus.org/English/September2...e304.shtml

03-07-2008 08:26 PM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
mysqlde
Usuario PL


Mensajes: 3
Grupo: Registrado
Registro en: Mar 2008
Estado: Sin Conexión
Reputación: 0
Mensaje: #3
RE: Mysql desde C

A la base de datos funciona, y muestra los datos en la pantalla

Este codigo es el que muestra los datos en la pantalla:

#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"

MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;


void err(void) {
fprintf(stderr, "%s\n", mysql_error(&mysql) );
exit(1);
}






int main()
{
int i;


if(!(mysql_real_connect(&mysql,"localhost","root",
"mmm","bolsa",3306,NULL,0))) err();

if(mysql_query(&mysql,"SELECT * FROM cotizaciones")) err();
if(!(res = mysql_store_result(&mysql))) err();
while((row = mysql_fetch_row(res))) {

for (i=2 ; i < mysql_num_fields(res); i++)
{

printf("%s",row[i]); /////////////QUIERO GUARDARLO EN UNA ARRAY TODOS LOS DATOS
}

}


if (!mysql_eof(res)) err();
mysql_free_result(res);
mysql_close(&mysql);
return 0;
}

03-07-2008 08:48 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
mysqlde
Usuario PL


Mensajes: 3
Grupo: Registrado
Registro en: Mar 2008
Estado: Sin Conexión
Reputación: 0
Mensaje: #4
RE: Mysql desde C

Aqui tiene un link del manual

http://dev.mysql.com/doc/refman/5.0/en/c.html

Gracias

03-07-2008 08:50 PM
Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
german
Moderador
*****
Moderadores

Mensajes: 223
Grupo: Moderadores
Registro en: Apr 2006
Estado: Sin Conexión
Reputación: 3
Mensaje: #5
RE: Mysql desde C

Muy bien!, ahora, para copiar cadenas de texto tenés que usar funciones. Esta la función sprintf que es la mas facil de usar (pero la mas lenta), te asigna sola la memoria que necesita para guardar. Ejemplo:

Código:
sprintf(mivariablechar,"%s",row[i])

También esta la funcion strcpy que copia las cadenas pero la variable destino tiene que tener el espacio suficiente asignado. Y tambien hay una que se llama strdup que asigna el espacio automaticamente.
Te recomiendo que leas este manual que explica mas en detalle.
http://www.elrincondelc.com/cursoc/cursoc12.html

Por otra parte, si me decís que los datos son tipo float, seguramente te convenga almacenarlos como float. Te dejo la referencia de las funciones para convertir de string a float.
http://www.gnu.org/software/libtool/manu...-of-Floats

03-08-2008 05:05 PM
Visita el website del usuario Encuentra todos los mensajes de este usuario Cita este mensaje en tu respuesta
Enviar Respuesta  Enviar Tema 

Posibles Temas Similares...
Tema: Autor Respuestas: Vistas: Ultimo Mensaje
  Ayuda con Expat, una libreria para cargar xml desde c++ jose luis 3 74 06-12-2008 08:48 PM
Ultimo Mensaje: p_eter
  Punteros y MYSQL (solucionado) Snoopydog 8 345 10-06-2007 06:54 AM
Ultimo Mensaje: oneken
  C + ncurses + form + mysql(solucionado) magtec 11 476 08-17-2007 02:46 PM
Ultimo Mensaje: p_eter

Ver la Versión para Impresión
Mandar este Tema a algún Amigo
Subscríbete a este Tema | Agrega este Tema a Tus Favoritos

Salto de Foro: