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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.05.2010, 17:15   #21
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

select count(*)
from t2
where t2.fk_id = 15 --ID

Вот имеенно у меня параметр (:id) вместо 15 не передает. Также пишет =4, а не =2 вот в чем проблема то. Этот код не работает.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 05.05.2010, 17:24   #22
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

ты про этот код?
Код:
DM.ADOQuery1.SQL.Add('SELECT COUNT(*) as CNT FROM osd,d WHERE osd.idd=:id');
dm.adoquery1.parameters.parambyname (id).value:=dm.adoq_dID.value; // все равное выводит все записи а не отбирает их по ID
1) для чего там перечислены обе таблицы, но связи при этом не указано?
2) параметр описан без кавычек
3) подставляемое значение в параметр - оно ваще есть? и чему равно? и зачем это криворукое обращение как к статическому полю?
soleil@mmc вне форума Ответить с цитированием
Старый 05.05.2010, 17:32   #23
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
Восклицание

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
ты про этот код?
Код:
DM.ADOQuery1.SQL.Add('SELECT COUNT(*) as CNT FROM osd,d WHERE osd.idd=:id');
dm.adoquery1.parameters.parambyname (id).value:=dm.adoq_dID.value; // все равное выводит все записи а не отбирает их по ID
1) для чего там перечислены обе таблицы, но связи при этом не указано?
2) параметр описан без кавычек
3) подставляемое значение в параметр - оно ваще есть? и чему равно? и зачем это криворукое обращение как к статическому полю?

1) для того, что они связанны между собой по id
2) параметр указан без кавычек т.к. печатал в ручную, и я написал что код работает, но передается в параметр 4, а не 2, точку останова делал и смотрел
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 05.05.2010, 17:46   #24
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Droid Посмотреть сообщение
1) для того, что они связанны между собой по id
и что?
ну связаны
только в приведенном запросе эта связь не отражена
и ее можно опустить вместе со связываемой таблицей поскольку значение айдишника ты передаешь параметром
а ты связь убрал, а перечисление таблиц оставил - вот у тебя и идет умножение строк вместо двух на выходе 4!!!

Цитата:
Сообщение от Droid Посмотреть сообщение
2) параметр указан без кавычек т.к. печатал в ручную, и я написал что код работает, но передается в параметр 4, а не 2, точку останова делал и смотрел
в какой параметр?
после выполнения запроса в поле CNT у тебя и будет 4ка (пояснения см.выше)

З.Ы.: если чота не понял из написанного выше, то перечитай 2 и более раз
soleil@mmc вне форума Ответить с цитированием
Старый 05.05.2010, 17:51   #25
Droid
Форумчанин
 
Аватар для Droid
 
Регистрация: 24.04.2008
Сообщений: 440
По умолчанию

Цитата:
Сообщение от soleil@mmc Посмотреть сообщение
и что?
ну связаны
только в приведенном запросе эта связь не отражена
и ее можно опустить вместе со связываемой таблицей поскольку значение айдишника ты передаешь параметром
а ты связь убрал, а перечисление таблиц оставил - вот у тебя и идет умножение строк вместо двух на выходе 4!!!


в какой параметр?
после выполнения запроса в поле CNT у тебя и будет 4ка (пояснения см.выше)

З.Ы.: если чота не понял из написанного выше, то перечитай 2 и более раз

Все понятно просто я сперва тестирую в MySQL Front запрос а потмо вставляю в Delphi поэтому выдавал ошибку. Спасибо, что объяснил.
1 старый программист, лучше новых 2-х
Droid вне форума Ответить с цитированием
Старый 06.05.2010, 00:55   #26
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

soleil@mmc АБСОЛЮТНО ПРАВ!
перечитывайте его пост пока не проникнетесь смыслом..

Цитата:
Ну так вот надо, а таблицы я не умножаю, а сравниваю 2 одинаковых ID в 2-х таблицах.
Именно умножаете! Где Вы сравниваете 2 ID в ДВУХ таблицах, когда в Where задаёте связь с ОДНОЙ таблицей?! свяжите эти таблицы по ID + добавьте нужное условие и всё у Вас получится:
Код:
 DM.ADOQuery1.SQL.Add('SELECT COUNT(*) as CNT FROM osd,d WHERE  osd.idd = d.idd and osd.idd=:id');
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
присвоить значение формы переменной bicdibus Общие вопросы Delphi 4 19.03.2010 17:22
TMemoryStream присвоить строковой переменной inndim Общие вопросы Delphi 3 06.05.2009 11:36
Переменной присвоить имя файла komar73 Microsoft Office Excel 4 26.03.2009 15:20
Присвоить результат запроса переменной XATAB БД в Delphi 3 25.02.2009 21:20
присвоить переменной целого типа значение поля key полученное в результате выполнения SQL запроса Worms БД в Delphi 5 10.01.2008 21:07