Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

передача запроса SQL серверу [D7, Win2k]


Draught ©   (2004-04-01 12:57:00) 

Проблемма в следующем, передается запрос, в котором встречается знак ' как добавить в строку этот знак??? Конечно его можно заменить на " но тогда возникает проблемка с самим SQL сервером, он этот запрос не принимает, помнится где-то была настроечка, которая говорила серверу о том, что такие запросы тоже верны. Так вот, мне хотелось бы узнать где эта настроечка или как запихнуть знак ' в строку запроса...


Desdechado   (2004-04-01 18:36:00) [1]

IB прекрасно понимает двойные кавычки, это проблема драйвера для dbExpress от Borland
поищи в инете, есть альтернативные


LittleSpo   (2004-04-01 14:30:00) [2]

Это понятно , просто автор топика не указал какую БД юзает .


LAMER100   (2004-04-01 14:27:00) [3]

>LittleSpo
InterBAse их не заглатывает


LittleSpo   (2004-04-01 14:25:00) [4]

вообщето если вас что то не устраивает ,
почему бы не юзать двойные кавычки ?
MSSQL с радостью их проглатывает .
ну а вообще в хелп иногда надо заглядывать


LAMER100   (2004-04-01 14:22:00) [5]

блин, все проще
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('select NAME from TABLE where NAME = :NAME1');
Query1.ParaByName('NAME1').ASString := Edit1.Text;
Query1.Open;


Ega23   (2004-04-01 14:15:00) [6]

единственный интересный момент - это когда result:='''' , что мы имеем в строке result??? Апостраф???

нет, мы имеем сроку "пустая строка"


sir John   (2004-04-01 13:25:00) [7]

Draught:не за что. Welcome!


sir John   (2004-04-01 13:24:00) [8]

ну да, типа того :)


PVOzerski   (2004-04-01 13:23:00) [9]

Так в чем проблема-то? Если компилятор Паскаля принимает апостроф  внутри строковой константы (SQL-запроса) за конец строки, пишется сдвоенный апостроф, и все дела. При компиляции он будет заменен на одинарный, честное слово! Если не веришь, пиши вместо него #39.


Draught   (2004-04-01 13:23:00) [10]

2sir John, огромный сенкс, все работает...


Draught   (2004-04-01 13:19:00) [11]

sir John, так вот это более интересно, т.е. эта функция заключает в апострафы строку!!!


Draught   (2004-04-01 13:16:00) [12]

Ясно, что ничего не ясно...
мне нужно пихнуть серверу строку

select NAME from TABLE where NAME="бяка"

сервер не понимает кавычек, как его заставить понимать кавычки??? В настройках есть точно, только где...

или нужно програмно в этой строке заменить кавычки на апострафы, т.е. пихнуть строку

select NAME from Table where NAME='бяка'

но вот как это сделать???

2Ega23 - функция абсолютно непонятная
единственный интересный момент - это когда result:='''' , что мы имеем в строке result??? Апостраф???


sir John   (2004-04-01 13:09:00) [13]


Sql.Add('select NAME from TABLE where NAME = '+QuotedStr(Edit1.Text);


Ega23   (2004-04-01 13:06:00) [14]

Я вообще свою функцию пользую:

Function Valx( i:Variant;d:string=''):string;{ret: <Str_of_Var>, }
//var //ss:string;
  // n:numeric;
begin
result:='';
try
case VarType(i) of
 varEmpty,//    = $0000;
 varNull: result:='Null'+d;
 varString: result:=''''+i+''''+d ;
 varDate: begin
           DateTimeToString(result,SQLDateTimeFmt,i);
           result:=result+d ;
          end;
 varDouble,
 varSingle: result:=NumsOnlyS(VarToStr(i)) +d;
else result:=VarToStr(i)+d;
end;//case
except
result:='';exit;
end;
end;


sir John   (2004-04-01 13:04:00) [15]

можно и вот так:
QuotedStr(const S: string): string; Подробное описание функции в справке


Draught   (2004-04-01 13:01:00) [16]

???
непонятно как это можно реализовать
пример:
'select NAME from TABLE where NAME="'+Edit1.Text+'"';

это мой запрос, я точно знаю, что SQL сервер можно заставить принимать знак кавычек как апостраф, но не помню где эта настройка, а вот как будет выглядеть 2 апострафа??? один открывающий, а второй закрывающий. Извиняюсь за выражение, возможно я не прав, но по-моему вы ерунду сморозили...


Ega23   (2004-04-01 12:58:00) [17]

два опострофа ставить вместо одного


Наверх

Титульная страница Поиск, карта сайта Написать письмо