Конференция "Прочее" » ошибку: 'CommandText does not return a result set
 
  • Peter_Evil (17.07.12 08:54) [0]
    Добрый день. Столкнулся с такой проблемой впервые, выдает вот такую  ошибку: 'CommandText does not return a result set. Process stoped'. Я использую borland c++ builder 6 и базу данных PostgreSQL 9.1. Пишу запрос с iNSERT:
    ADOQuery_answ->ConnectionString="Provider=MSDASQL.1;Password=1;Persist Security Info=True;User ID=postgres;Data Source=PostgreSQL30;Initial Catalog=test2";
    String query5 = "insert into answer (id_answer, answer, id_patient, id_vopros, id_test) values (:id_answer,:answer,1,:id_vopros,7)";
    ADOQuery_answ->Parameters->ParamByName("id_answer")->Value=Label_nomer->Caption;
    ADOQuery_answ->Parameters->ParamByName("id_vopros")->Value=Label_nomer->Caption;
    ADOQuery_answ->Parameters->Items[1]->Value=Edit_answ->Text;
    DataSource_answ->DataSet=ADOQuery_answ;
    ADOQuery_answ->Active=0;
    ADOQuery_answ->SQL->Text=query5;
    ADOQuery_answ->Active=1;
    ADOQuery_answ->ExecSQL();

  • Anatoly Podgoretsky © (17.07.12 09:12) [1]
    У нас вообще то форум по ДЕЛЬФИ
    Убери Active, а то все что знал, все включил.
  • Сергей М. © (17.07.12 09:12) [2]
    Вогт твои грабли:
    ADOQuery_answ->Active=1;

  • Сергей М. © (17.07.12 09:12) [3]
    Удалено модератором
  • Peter_Evil (17.07.12 09:52) [4]
    Блин,точно сработало) спасибо. Но почему так, я всегда когда пишу запросы всегда делаю ADOQuery_answ->Active=1; и все работает, а тут не получилось!не объясните почему?)

    Я сюда написал потому что видел такую же ошибку, как у меня, но пути их решения мне не помогали.
  • Inovet © (17.07.12 09:57) [5]
    Кроме того в Active=0, Active=1 целые от лени? Это логический тип всё-таки и следует без неявных преобразований из целого писать false, true.
  • Inovet © (17.07.12 10:01) [6]
    > [4] Peter_Evil   (17.07.12 09:52)
    > а тут не получилось!не объясните почему?)

    Потому что
    active = true;
    так же как и
    Open();
    предназначен для запросов возвращающих набор данных, а
    ExecSQL();
    для невозвращающих. У тебя нечего возвращать.
  • Inovet © (17.07.12 10:03) [7]
    И пользуйся для таких TADOCommand
  • Peter_Evil (17.07.12 10:21) [8]
    спасибо! на будущее запомню
  • Anatoly Podgoretsky © (17.07.12 10:26) [9]
    И Query не используй, ведь все это последствия
 
Конференция "Прочее" » ошибку: 'CommandText does not return a result set
Есть новые Нет новых   [134431   +9][b:0][p:0.001]