Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > C++ и MySQL


Автор: A... 6.10.2004, 22:53
Привет всем.

Помогите пожалуста. Мне нужно считать данные из базы в MySQL, а как это сделать я без понятия.

Зарание спосибо.

Автор: Anklav 7.10.2004, 01:15
Нашёл в какой-то документации по MySQL:

Цитата

Рассмотрим простой пример MySQL-клиента, который только выполнит SELECT и выведет все возвращенные строки в STDOUT. В нем использованы далеко не все функции С API, он должен только дать Вам представление о типичном виде программы-клиента.
Код

#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
void exiterr(int exitcode)
{
 fprintf(stderr, "%s\n", mysql_error(&mysql));
 exit(exitcode);
}
int main()
{
 uint i = 0;
 if (!(mysql_connect(&mysql,"host","username","password")))
    exiterr(1);
 if (mysql_select_db(&mysql,"payroll")) exiterr(2);
 if (mysql_query(&mysql,"SELECT name,rate FROM emp_master"))
    exiterr(3);
 if (!(res = mysql_store_result(&mysql))) exiterr(4);
 while((row = mysql_fetch_row(res))) {
   for (i=0; i < mysql_num_fields(res); i++)
     printf("%s\n",row[i]);
 }
 if (!mysql_eof(res)) exiterr(5);
 mysql_free_result(res);
 mysql_close(&mysql);
}



Автор: A... 13.10.2004, 00:03
Сделал, но дает 10 ошибок..sad.gif

Может нужно что-то типа mysql.lib..?

Да и еше насколько я понял имя базы payroll..?
Может вопросы глупые... просто ето моя первая програмка связаннаяа с ДБ...

Спасибо А.


Автор: Kurt 13.10.2004, 01:59
Цитата
Может нужно что-то типа mysql.lib..?

Да. Если не ошибаюсь, нужна mysqlclient.lib

Автор: Sergey N. Bocharov 13.10.2004, 02:12
Код

#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
MYSQL mysql;
MYSQL_RES *res;
MYSQL_ROW row;
// вывод причины ошибки БД на экран :--)))
void exiterr(int exitcode)
{
fprintf(stderr, "%s\n", mysql_error(&mysql));
exit(exitcode);
}
int main()
{
uint i = 0;
/* mysql_connect - функция соединения с БД MYSQL - обычно: host=localhost
username=root
password="" (пусто)
*/
if (!(mysql_connect(&mysql,"host","username","password")))
 exiterr(1); // нет соединения - ошибка
// БД - payroll (должна быть заведена в MYSQL)
if (mysql_select_db(&mysql,"payroll")) exiterr(2);
// выборка из таблицы emp_master полей name,rate
if (mysql_query(&mysql,"SELECT name,rate FROM emp_master"))
 exiterr(3);
if (!(res = mysql_store_result(&mysql))) exiterr(4);
// преобразование  в индексный массив
while((row = mysql_fetch_row(res))) {
// т.е. чтобы обратиться к полю name, надо написать row[0]
for (i=0; i < mysql_num_fields(res); i++)
 printf("%s\n",row[i]);
}
if (!mysql_eof(res)) exiterr(5);
// очистка памяти
mysql_free_result(res);
// закрытие соединения с БД
mysql_close(&mysql);
}


хм. ну вроде прокомментировал.
Успехов.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)