| 
| 
 | Вопрос # 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). но знать неповредит  я думаю |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |