Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ParamByName


Автор: myk 11.3.2009, 06:43
Код

ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into tbParks(PK_Identificator)");
ADOQuery1->SQL->Add("select max(PK_identificator)+1 from tbParks");
ADOQuery1->SQL->Add("update tbParks set PK_title = " + Form6->Edit1->Text + " , Pk_short= " + Form6->Edit2->Text + " ,");
ADOQuery1->SQL->Add("PK_KP = 0, PK_includedate = getdate(), PK_TimeVoditBefore_1 = 0, PK_TimeVoditBefore_2 = 0, PK_TimeVoditBefore_C = 0, PK_TimeVoditBefore_R = 0, PK_TimeVoditBefore_O = 0, PK_TimeVoditAfter_1 = 0, PK_TimeVoditAfter_2 = 0, PK_TimeVoditAfter_C = 0, PK_TimeVoditAfter_R = 0, PK_TimeVoditAfter_O = 0, PK_Pref=(select max(PK_pref)+1 from tbParks)");
ADOQuery1->SQL->Add("where PK_identificator= (select max(PK_identificator) from tbParks)");
ADOQuery1->ExecSQL();


ошибка возле конструкции " ,"

Код

ADOQuery1->Parameters->ParamByName("NNname")->Value=Form6->Edit1->Text;
ADOQuery1->Parameters->ParamByName("shNNname")->Value=Form6->Edit2->Text;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into tbParks(PK_Identificator)");
ADOQuery1->SQL->Add("select max(PK_identificator)+1 from tbParks");
ADOQuery1->SQL->Add("update tbParks set PK_title = :NName , Pk_short= :shNNname ,");
ADOQuery1->SQL->Add("PK_KP = 0, PK_includedate = getdate(), PK_TimeVoditBefore_1 = 0, PK_TimeVoditBefore_2 = 0, PK_TimeVoditBefore_C = 0, PK_TimeVoditBefore_R = 0, PK_TimeVoditBefore_O = 0, PK_TimeVoditAfter_1 = 0, PK_TimeVoditAfter_2 = 0, PK_TimeVoditAfter_C = 0, PK_TimeVoditAfter_R = 0, PK_TimeVoditAfter_O = 0, PK_Pref=(select max(PK_pref)+1 from tbParks)");
ADOQuery1->SQL->Add("where PK_identificator= (select max(PK_identificator) from tbParks)");
ADOQuery1->ExecSQL();


параметр NNname not found
Код

ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into tbParks(PK_Identificator)");
ADOQuery1->SQL->Add("select max(PK_identificator)+1 from tbParks");
ADOQuery1->SQL->Add("update tbParks set PK_title = 'NName' , Pk_short= 'shNNname' ,");
ADOQuery1->SQL->Add("PK_KP = 0, PK_includedate = getdate(), PK_TimeVoditBefore_1 = 0, PK_TimeVoditBefore_2 = 0, PK_TimeVoditBefore_C = 0, PK_TimeVoditBefore_R = 0, PK_TimeVoditBefore_O = 0, PK_TimeVoditAfter_1 = 0, PK_TimeVoditAfter_2 = 0, PK_TimeVoditAfter_C = 0, PK_TimeVoditAfter_R = 0, PK_TimeVoditAfter_O = 0, PK_Pref=(select max(PK_pref)+1 from tbParks)");
ADOQuery1->SQL->Add("where PK_identificator= (select max(PK_identificator) from tbParks)");
ADOQuery1->ExecSQL();

а так все работает. подскажите как с этими параметрами быть?

Автор: myk 11.3.2009, 08:31
Код

ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into tbParks(PK_Identificator)");
ADOQuery1->SQL->Add("select max(PK_identificator)+1 from tbParks");
ADOQuery1->SQL->Add("update tbParks set PK_title = :Name , Pk_short= :SName ,");
ADOQuery1->SQL->Add("PK_KP = 0, PK_includedate = getdate(), PK_TimeVoditBefore_1 = 0, PK_TimeVoditBefore_2 = 0, PK_TimeVoditBefore_C = 0, PK_TimeVoditBefore_R = 0, PK_TimeVoditBefore_O = 0, PK_TimeVoditAfter_1 = 0, PK_TimeVoditAfter_2 = 0, PK_TimeVoditAfter_C = 0, PK_TimeVoditAfter_R = 0, PK_TimeVoditAfter_O = 0, PK_Pref=(select max(PK_pref)+1 from tbParks)");
ADOQuery1->SQL->Add("where PK_identificator= (select max(PK_identificator) from tbParks)");
ADOQuery1->Parameters->ParamByName("Name")->Value=Form6->Edit1->Text;
ADOQuery1->Parameters->ParamByName("SName")->Value=Form6->Edit2->Text;
ADOQuery1->ExecSQL();


а вот так работает, странная какая то логика определять параметры после формирования строки запроса, и не иначе. помоему они все равно тут ADOQuery1->ExecSQL(); подставляются.

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