Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование переменной String в запросе order by, Мешают ковычки в запросе 
:(
    Опции темы
KAV2008
Дата 26.3.2009, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Пожалуйста подскажите ошибку в запросе 

В зависимости от выбора combobox выполняеться сортировка 

If bsSkinComboBox3.ItemIndex=0 Then sort:= 'a1.heat_id';
If bsSkinComboBox3.ItemIndex=1 Then sort:= 'a1.multiple_status';
 If bsSkinComboBox3.ItemIndex=2 Then sort:= 'a1.multiple_code';
 If bsSkinComboBox3.ItemIndex=3 Then sort:= 'a1.revision';
   

str:='SELECT a1.multiple_code, a1.lot_cnt, a1.heat_id, a1.outer_diameter, a1.length, a1.weight, a1.linear_weight, a1.multiple_status, a1.revision '+
       'FROM spcmultiple a1 where (a1.revision BETWEEN to_date('''+data1+''',''DD.MM.YYYY'') AND  to_date('''+data2+''',''DD.MM.YYYY''))  order by '''+sort+'''';

DataModule2.ADOQuery1.SQL.Clear;
DataModule2.ADOQuery1.SQL.Add(str);
DataModule2.ADOQuery1.Open;

Запрос выполняеться но не сортируеться т.к. в str в конце записано например : order by 'a1.heat_id'
ковычки лишние - как от них избавиться 
PM MAIL   Вверх
jsa
Дата 26.3.2009, 11:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 5
Всего: 20



Цитата(KAV2008 @  26.3.2009,  16:32 Найти цитируемый пост)
order by '''+sort+''''

нафига столько кавычек
должно быть примерно так 
Код

str:='SELECT a1.multiple_code, a1.lot_cnt, a1.heat_id, a1.outer_diameter, a1.length, a1.weight, a1.linear_weight, a1.multiple_status, a1.revision '+
'FROM spcmultiple a1 where (a1.revision BETWEEN to_date('''+data1+''',''DD.MM.YYYY'') AND  to_date('''+data2+''',''DD.MM.YYYY''))  order by '+sort;

а вообще пользуйся QuotedStr


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
KAV2008
Дата 26.3.2009, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Спасибо за ответ
 но так пробовали тоже
ошибка возникает Ora 00936- отсутствует выражение

а с ковычками хоть запрос выполняеться

пдскажите что делать
PM MAIL   Вверх
Данкинг
Дата 26.3.2009, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(KAV2008 @  26.3.2009,  11:52 Найти цитируемый пост)
пдскажите что делать 

1. Попробуй запрос с параметрами, хотя с select ADO может в этом случае глючить.
2. Подключайся к Oracle через компоненты Direct Oracle Access (хотя они платные).


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
KAV2008
Дата 26.3.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



order by '+QuotedStr(sort);
в этом случае выборка происходит но сотрировка нет -  ковычки остались , например  order by 'a.heat_id'

запрос с параметрами тоже опробован - не работает 

может еще какие подсказки подбросите - будем благодарны
PM MAIL   Вверх
pseud
Дата 26.3.2009, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



KAV2008, 
Цитата(jsa @  26.3.2009,  11:43 Найти цитируемый пост)
нафига столько кавычекдолжно быть примерно так 

У jsa корректный код.



--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
jsa
Дата 26.3.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 5
Всего: 20



Цитата(KAV2008 @  26.3.2009,  16:52 Найти цитируемый пост)
ошибка возникает Ora 00936- отсутствует выражение

проверяй полученный запрос вручную


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
pseud
Дата 26.3.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(jsa @  26.3.2009,  13:05 Найти цитируемый пост)
проверяй полученный запрос вручную

типо так
1. ShowMessage(DataModule2.ADOQuery1.SQL.Text);
2. Ctrl-C
3. PL/SQL Developer - Execute


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Cashey
Дата 26.3.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: нет
Всего: 60



используйте параметры вместо строчной переменной sort


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0503 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.