Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.02.2009, 12:55   #1
WishNight
 
Регистрация: 23.01.2009
Сообщений: 6
По умолчанию Непонятка с запросом

Подскажите, плиз.


Вот такой запрос:

Код:
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('SELECT Printers.МОдель_ТС, SuppliesType.Модель_РМ');
AdoQuery1.SQL.Add('FROM SuppliesType INNER JOIN (Printers INNER JOIN Supplies ON Printers.ID_model = Supplies.Модель_ТС) ON SuppliesType.ID_Supp = Supplies.Модель_РМ');
AdoQuery1.SQL.Add('WHERE Printers.МОдель_ТС="i"');
AdoQuery1.Close;

Переменная i чуть раньше принимает значение поля Модель_ТС таблицы Printers.
Собственно непонятка вот в чём:
Если я вместо переменной i указываю напимер "LJ 2200", ('WHERE Printers.МОдель_ТС="LJ 2200"') - то весь запрос работает отлично.
Если же указываю переменную - то выборка не происходит.

В чём затык? Где-нибудь в синтаксисе ошибся?
WishNight вне форума
Старый 01.02.2009, 13:11   #2
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию в твоем случае он ищет принтер с именем 'i'

Цитата:
В чём затык? Где-нибудь в синтаксисе ошибся?
Код:
AdoQuery1.SQL.Add('WHERE Printers.МОдель_ТС='+''''+i+'''');
но так если i:string;
вступлю в команду разработчиков ПО на Delphi

Последний раз редактировалось maladoy; 01.02.2009 в 13:14.
maladoy вне форума
Старый 01.02.2009, 14:12   #3
WishNight
 
Регистрация: 23.01.2009
Сообщений: 6
По умолчанию

Спасибо!! заработало

Блин.. нафига столько кавычек лепить? )))
WishNight вне форума
Старый 01.02.2009, 14:18   #4
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Потому что 2 кавычки не дают не одной, 3 такаЯ же ерунда, а 4 дают -одну кавычку.Синтаксис дельфи такой
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума
Старый 01.02.2009, 14:27   #5
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Чтобы не лепит вручную, есть
Код:
function QuotedStr(const S: string): string;
Alter вне форума
Старый 01.02.2009, 14:51   #6
WishNight
 
Регистрация: 23.01.2009
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Alter Посмотреть сообщение
Чтобы не лепит вручную, есть
Код:
function QuotedStr(const S: string): string;

а где сие найти?
WishNight вне форума
Старый 01.02.2009, 15:14   #7
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

http://delphi.about.com/library/rtl/blrtlQuotedStr.htm
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума
Старый 01.02.2009, 15:39   #8
WishNight
 
Регистрация: 23.01.2009
Сообщений: 6
По умолчанию

Спасибо. Попробую разобратся с этим.
WishNight вне форума
Старый 03.02.2009, 23:09   #9
unknown34
Новичок
Джуниор
 
Регистрация: 03.02.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Alter Посмотреть сообщение
Чтобы не лепит вручную, есть
Код:
function QuotedStr(const S: string): string;
вообще кавычку как и любой символ можно писать с помощью аски кода
http://www.easywebscripts.net/html/ascii.php
Сайт по разработке аппаратуры, электроники, железыа
http://www.expert-electro.tu2.ru/
unknown34 вне форума
Старый 03.02.2009, 23:30   #10
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Код:
...
AdoQuery1.SQL.Add('WHERE Printers.МОдель_ТС=:i');
ADOQuery1.Parameters.ParamByName('i').Value := i;
Варианты решения даны. Плавно и не торопясь закрываем тему - абы флуда избежати...

Последний раз редактировалось mihali4; 03.02.2009 в 23:58.
_Engine_ вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятка с QuickReport Yurk@ БД в Delphi 1 14.11.2008 01:41
Непонятка с русским Antidoc Общие вопросы C/C++ 1 11.08.2008 21:21
Помогите с запросом Айвенго Microsoft Office Access 3 08.05.2008 09:07
Непонятка или ошибка TIdHTTPServer Vovkin Работа с сетью в Delphi 7 09.01.2007 16:15
помогите с запросом 9-11 БД в Delphi 4 20.11.2006 10:04