![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
передача запроса 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]два опострофа ставить вместо одного