Проблема С Update

Тема в разделе "SQL", создана пользователем AQR, 7 авг 2007.

Статус темы:
Закрыта.
  1. AQR

    AQR Гость

    При повторном вызове одного и того же UPDATE появляется ошибка:
    Database Server Error: Commands out of sync; you can't run this command now.

    Нашел в описаниях в манах по мускулю:
    When using mysql_use_result(), you must execute mysql_fetch_row() until a NULL value is returned, otherwise, the unfetched rows will be returned as part of the result set for your next query. The C API will give the error Commands out of sync; you can't run this command now if you forget to do this!

    Перевод на мой взгляд примерно следующий:
    Когда используется mysql_use_result() ты должен выполнить mysql_fetch_row() до тех пор пока не вернется NULL, иначе не полученные поля будут возвращены в след.запросе. И вы получите данныу ошибку.

    Только вот , что-то не могу понять смысл., в моем случае же нет выборки, да и SQLQuery(DBExpress) используется только для односторонней связи.

    Вызов UPDATE:
    Код (Text):
    SQLQuery1.SQL.Clear;
    SQLQuery1.SQL.Add('UPDATE BIC SET vrb="'+Vrb.Text+'",o="'+o.Text+'",client="'+client.Text+'",state="'+state
    .Text+'",telefon="'+telefon.Text+'",kontakts="'+Boss.Text+'",adress="'+adr
    ess.Text+'",mail="'+Email.Text+'",last_memo="'+History.Text+'" WHERE id='+var_id);
    try
    SQLQuery1.ExecSQL;
    Except
    on E: EDatabaseError do
    begin
    ShowMessage(E.Message+ 'Невозможно выполнить запрос');
    exit;
    end;
    end;
     
  2. BVS

    BVS Гость

    <!--QuoteBegin-AQR+7:08:2007, 00:23 -->
    <span class="vbquote">(AQR @ 7:08:2007, 00:23 )</span><!--QuoteEBegin-->да и SQLQuery(DBExpress) используется только для односторонней связи
    [snapback]74580" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Ну и что, при односторонней связи так-же можно вернуть выборку.

    Еще интересный момент в приведенном коде<!--QuoteBegin-AQR+7:08:2007, 00:23 -->
    <span class="vbquote">(AQR @ 7:08:2007, 00:23 )</span><!--QuoteEBegin-->ShowMessage(E.Message+ 'Невозможно выполнить запрос');
    [snapback]74580" rel="nofollow" target="_blank[/snapback]​
    [/quote] а программы твоя выдает ошибку
    <!--QuoteBegin-AQR+7:08:2007, 00:23 -->
    <span class="vbquote">(AQR @ 7:08:2007, 00:23 )</span><!--QuoteEBegin-->Database Server Error: Commands out of sync; you can't run this command now.
    [snapback]74580" rel="nofollow" target="_blank[/snapback]​
    [/quote] Ты уверен, что ошибка в этом месте? (где в сообщении слова 'Невозможно выполнить запрос')
     
  3. AQR

    AQR Гость

    Ошибка возникает именно в приведенном выше запросе, трассировка рулит.
    Запрос то UPDATE, вернуть он может максимум 1,0
     
  4. AQR

    AQR Гость

    Если получена ошибка Commands out of sync; you can't run this command now в клиентском коде, то клиентские функции вызываются в неправильном порядке!

    Это может произойти, например, если используется mysql_use_result() и делается попытка выполнить новый запрос до того, как вызвана mysql_free_result(), или если клиент пытается выполнить два возвращающих данные запроса без обращения к mysql_use_result() либо mysql_store_result() в промежутке между ними.

    Забыл добавить :D при первом выполнении запроса ошибка не возникает :(

    Разобрался!
     
Загрузка...
Похожие Темы - Проблема Update
  1. Erlan
    Ответов:
    1
    Просмотров:
    747
  2. AgniXRudra
    Ответов:
    2
    Просмотров:
    52
  3. Zloikaktus
    Ответов:
    0
    Просмотров:
    30
  4. c0de3r
    Ответов:
    5
    Просмотров:
    153
  5. DobermannTT
    Ответов:
    10
    Просмотров:
    159
Статус темы:
Закрыта.

Поделиться этой страницей