SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 07.01.2008 20:40:33

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Какова максимальная длина query?

Приветствую всех!

Я тут один SQL-запрос составил на 300 Кб smile Теперь хочу написать клиентскую программу на С++.
Только не знаю, потянет ли функция mysql_query подобный запрос?
Если нет, то какова максимальная длина query для данной функции?

Неактивен

 

#2 07.01.2008 22:48:02

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Какова максимальная длина query?

Про ограничения размера запроса ничего не сказано http://dev.mysql.com/doc/refman/6.0/en/mysql-query.html

Главное не превысить max_allowed_packet и 4Gb для char*

Неактивен

 

#3 07.01.2008 23:57:40

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Какова максимальная длина query?

Поправочка - 2/3GB на процесс на 32-битной системе (в зависимости от системы и ядра) smile

Неактивен

 

#4 08.01.2008 12:29:03

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Какова максимальная длина query?

Спасибо! Ну что же приступлю к программированию smile

Неактивен

 

#5 08.01.2008 12:38:55

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Какова максимальная длина query?

Да и еще! Есть ли функция на C++, которая выполняет ряд sql-запросов из txt-файла?
Конечно, такую функцию и самому можно написать, но интересно, есть или нет? smile

Неактивен

 

#6 08.01.2008 15:43:23

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Какова максимальная длина query?

system("mysql -e 'source filename.txt'"); wink

Но вообще, лучше напишите свою, разумеется smile

Неактивен

 

#7 08.01.2008 20:51:11

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Какова максимальная длина query?

Вот фрагмент кода:

    char *str;
    FILE *f;
    ...
    str=new char[44002];
    f=fopen("add_object\\query.txt","r");
    fread(str,1,44002,f);
    fclose(f);
    if (mysql_real_query (conn,str,44002))
    {    fprintf (stderr, "Error %u: (%s)\n",mysql_errno (conn), mysql_error (conn));
        exit (1);                                       
    }
    delete[] str;
   
    str=new char[320141];
    f=fopen("add_object\\query2.txt","r");
    fread(str,1,320141,f);
    fclose(f);
    if (mysql_real_query (conn,str,320141))
    {    fprintf (stderr, "Error %u: (%s)\n",mysql_errno (conn), mysql_error (conn));
        exit (1);                                       
    }
    delete[] str;

После второго вызова ф-ции mysql_real_query на консоли выдается сообщение:
Error 2014: (Commands out of sync; you can't run this command now)

Пробовал вводить искусственную задержку между вызовами функций mysql_real_query, но не помогало.

В чем же может быть дело? Спасибо.

Неактивен

 

#8 08.01.2008 21:06:16

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Какова максимальная длина query?

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

After invoking mysql_query() or mysql_real_query(), you must call mysql_store_result() or mysql_use_result() for every statement that successfully retrieves data (SELECT, SHOW, DESCRIBE, EXPLAIN, CHECK TABLE, and so forth). You must also call mysql_free_result() after you are done with the result set.

Неактивен

 

#9 09.01.2008 11:06:48

chessplayer
Завсегдатай
Зарегистрирован: 20.11.2007
Сообщений: 43

Re: Какова максимальная длина query?

Спасибо, теперь все в порядке smile Поистине это ценный ресурс!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson