Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 01:27 05.07.25 
Компютри и Интернет
   >> Delphi
*Кратък преглед

Тема TQuery и апострофи/двойни кавичкинови  
АвторVeso (Нерегистриран)
Публикувано10.11.04 12:15



Здравейте !

Как мога да стартирам параметризирана заявка(TQuery) в параметрите на която се съдържат символите ' (39 dec) и/или " (34 dec) ? Например:

qry->SQL->Add("INSERT INTO COUNTRY (NAME, CAPITAL, POPULATION) ");
qry->SQL->Add("VALUES (:Name, :Capital, :Population) ");
qry->Params->Items[0]->AsString = "People's Republic of China"; // тук е проблема

Най лесният начин е да проверявам предварително, дали се съдържат такива символи и да ги премахвам, без да уведомя потребителя, или да изведа съответното страховито съобщение, че е въведен невалиден символ, но това не ме устройва.
Работя c C++ Builder и Paradox.



Тема Re: TQuery и апострофи/двойни кавичкинови [re: Veso]  
Автор andrew_nikoloff (aka бах ма'а му)
Публикувано10.11.04 14:12



Няма проблем стойностите на параметрите да съдържат кавички или апострофи.
С параметри спокойно можеш да напишеш нещо такова...


void __fastcall TForm1::Button1Click(TObject *Sender)
{
Query1->Close();
Query1->DatabaseName = "DBDEMOS";
Query1->SQL->Clear();
Query1->SQL->Add("select * from customer");
Query1->SQL->Add("where company = :company");
Query1->Params->Items[0]->AsString = "Davy Jones' Locker";
Query1->Open();
}

Защо смяташ, че не може да има кавички? Може ми има някакъв друг проблем... Кажи за какво става въпрос

Редактирано от andrew_nikoloff на 10.11.04 14:14.



Тема Re: TQuery и апострофи/двойни кавичкинови [re: andrew_nikoloff]  
АвторVeso (Нерегистриран)
Публикувано10.11.04 15:00



Ами като търся в Google-то това е познат проблем, който се решава по следния начин:
- стринг съдържащ апостроф се въвежда така:
Query1->Params->Items[0]->AsString = "Davy Jones' Locker";
и минава
но, ако стринга съдържа двойна кавичка ще имаш проблем
напр. Query1->Params->Items[0]->AsString = "\"Davy Jones" Locker";
независимо, дали съм поставил обратно наклонена черта \ преди двойната кавичка. В този случай би трябвало да мине така:
Query1->Params->Items[0]->AsString = "\'Davy Jones\" Locker\'";
Лошото е, че не знам предварително, какво ще въведе потребителя.



Тема Re: TQuery и апострофи/двойни кавичкинови [re: Veso]  
Автор AquilaX (познат)
Публикувано10.11.04 16:02



В Delphi има функция QuotedStr() която прави стринга подходящ за SQL заявка.

AquilaX

____________


умният знае кога да говори, мъдрият знае кога да мълчи

Тема Re: TQuery и апострофи/двойни кавички [re: AquilaX]  
АвторVeso (Нерегистриран)
Публикувано10.11.04 16:36



Работи !!
В ВСВ-то AnsiString e реализиран като клас и няма метод QuotedStr, затова не ми е позната тази ф-я, но всички Delphi ф-ии за работа със стрингове са си налице. Благодаря много !




*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.