|
Вопрос # 808/ вопрос открыт / |
|
Добрый вечер.
Как можно (и можно ли вообще )использовать свойство ParamByName (Query, Command) что бы изменять часть запроса то есть мне нужно:
select * from DataBase.Table1;
чтобы DataBase можнл было задать также легко как и
значение :Param ??
select * from Table1
where pole1>:Param;
 |
Вопрос задал: Сидаровский Георгий (статус: Посетитель)
Вопрос отправлен: 30 июля 2007, 20:35
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Сидаровский Георгий!
Если пойти в лоб и написать что то вида select * from :param - не работает. Но например я привык писать запросы непосредственно. тоесть я пишу функцию, которая на основании переданных ей параметров формирует правильный запрос.
ну где то так
function GetMySQL(Param1:string):string;
begin
result:=\'select * from \'+Param1;
end;
и вызываем соответственно
Query1.SQL.text:=GetMySQL(\'data\');
Используя этот приём, можно получить очень гибкие запросы.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 30 июля 2007, 21:01
Оценка за ответ: 5
Комментарий к оценке: Спасибо.
я обычно просто делал без функций
|
Мини-форум вопроса
Всего сообщений: 7; последнее сообщение — 1 августа 2007, 17:39; участников в обсуждении: 2.
|
Сидаровский Георгий (статус: Посетитель), 31 июля 2007, 11:28 [#1]:
Да и есчо допустим у меня запрос будет больше чем 256 символов какой тип тогла лучше использовать ?
|
|
Вадим К (статус: Академик), 31 июля 2007, 12:01 [#2]:
Ну если у вас не выставлены короткие строки (по умолчанию они не выставлены) то длина строки ограничена 4 гигабайтами, но на практике где то чуть меньше 2 гигов. Я думаю, этого хватит.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Сидаровский Георгий (статус: Посетитель), 31 июля 2007, 12:29 [#3]:
а где это можно увидить проверить.
хочется знать где выставляется это ?
|
|
Вадим К (статус: Академик), 31 июля 2007, 12:34 [#4]:
Меню Project - Options...
Вкладка Compiler
Галочка Huge String должна стоять
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Сидаровский Георгий (статус: Посетитель), 31 июля 2007, 13:24 [#5]:
Блин всегда думал что через тип String можно передать только 256 символов. Спасибо что открыли мне глаза
|
|
Вадим К (статус: Академик), 31 июля 2007, 13:33 [#6]:
Пожалуйста.
В общем, эта возможность появилась с 2 делфи. Для совместимости ввели директиву {$H+} которая включает поддержку длинных строк и {$H-} - которая отключает. Можно даже по коду отключать/включать.
Также есть тип ShortString, который всегда короткий - 256 символов.
И ещё один миф развею, который сишники любят разводить.
Мол код length(s), где s - строка, медленно работает.Вычисляется долго. Неправда. если s - string, то этот код работает быстро, ибо это просто запрос ячейки памяти. Тоесть в 2 ассемблерные строки. Не медленней чем запрос переменной.
Но для PChar и PAnsiChar это не справедливо. Там действительно медленно.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Сидаровский Георгий (статус: Посетитель), 1 августа 2007, 17:39 [#7]:
Хм... честно говоря некогда не задумывался над скоростью выполнения Length(s). но знать неповредит я думаю
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|