SQL. Two DataSource in Grid

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

SQL. Two DataSource in Grid

Сообщение Valery » 12 апр 2005, 21:20

Приветствую.
При переходе на SQL сервер FB возникла проблема с предстовлением данных из двух наборов данных в одной таблице TDBGrid
запрос типа
SELECT Detail,Master from T_Detail,T_Master
Where Master_ID=ID
Выдает как и положено избыточные данные.Т.е. количество кортежей равно произведению кортежей обеих таблиц.Мне же необходим вывод неизбыточных данных
Пробовал и внешние представления.В мануалах ничего не нашел.Стал уже думать об использовании StringGrid.
На сегодняшний день программа работает с локальной базой данных .dbf (Так уж разработчик сделал)из нескольких Master формируется плоская Detail т.е. не поключевым полям а простой вставкой значений Master, - в гриде через эдит выбирается нужный кордеж.Сейчас база нормализована - думаю 3НФ.Хотелось бы сохранить удобство выборки нужного кортежа как сейчас путем постепенного ввода предпологаемого значения.
Помогите чем могите прогу хотелось бы оттестить до конца месяца.Отчет типа ждет.
IDE Delphi
СУБДД FireBird 1.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: SQL. Two DataSource in Grid

Сообщение Merlin » 12 апр 2005, 21:30

Valery писал(а):Приветствую.
При переходе на SQL сервер FB возникла проблема с предстовлением данных из двух наборов данных в одной таблице TDBGrid
запрос типа
SELECT Detail,Master from T_Detail,T_Master
Where Master_ID=ID
Выдает как и положено избыточные данные.Т.е. количество кортежей равно произведению кортежей обеих таблиц.Мне же необходим вывод неизбыточных данных
Картёжи - это хорошо, это мы любим. А задать в запросе условия соответствия записей детали записи мастера не пробовал? Чтобы не получать произведение. Декартово, кстати.
Valery писал(а): Пробовал и внешние представления.
Где, простите? Имеется в виду view или left join? Дальше поскипал, поскольку всё равно ни хрена не понял.

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

Re: SQL. Two DataSource in Grid

Сообщение Valery » 12 апр 2005, 21:41

Merlin писал(а):
Valery писал(а):


Где, простите? Имеется в виду view или left join? Дальше поскипал, поскольку всё равно ни хрена не понял.
View это кажись внутреннее представление.
Пробовал и правый и левый .
Лучше подскажите как запрос сформировать

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Re: SQL. Two DataSource in Grid

Сообщение Merlin » 12 апр 2005, 22:28

Valery писал(а): View это кажись внутреннее представление.
Пробовал и правый и левый .
Лучше подскажите как запрос сформировать
Тяжко с тобой. Не знаю что ты пробовал, но про view - это круто.

SELECT Detail,Master from T_Detail,T_Master
Where Master_ID=ID

это не запрос вообще, а некая фантазия на тему SQL, похожая на что-то только в мозгу автора. И что ты хочешь в итоге получить, тоже совершенно непонятно. Ты уж приведи настоящий запрос, да покажи пальцем чего надобно-то. Долго уговаривать и возиться не буду.

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

Сообщение Valery » 12 апр 2005, 23:35

как еще проще объяснить что мне надо объеденить две или более таблицы(точнее некоторые поля) связаных мастер-детальная
что бы в гриде было плоское представление? стем чтобы можно было по совподающим символам введенных в Edit находить нужную запись.Пояснение для того чтоб небыло глупых вопросов зачем это нужно.

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 12 апр 2005, 23:51

Короче. Не умеешь спросить по-человечи - пошёл ты к Граберу. Мартину. Про джойны читать. Это чтобы не давать глупых ответов.

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

SQL. Two DataSource in Grid

Сообщение Valery » 13 апр 2005, 00:00

Merlin писал(а):Короче. Не умеешь спросить по-человечи - пошёл ты к Граберу. Мартину. Про джойны читать. Это чтобы не давать глупых ответов.
СПАСЫПО добрая фея,Тока скажи мне
джойн возвращает обнавленные результаты? Без реконекта неполучается....

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 апр 2005, 09:53

Валерий! Какие "обнавленные" результаты? Любой SQL возвращает то, что его попросили. И если выполнить SQL еще раз - может вернуть и "обнавленные". Тока если ты на IBTransaction не тыкал, и ему параметры на read committed не менял, то никаких "обнавлений" тебе не будет.

О, сколько нам открытий чудных
готовит просвещенья дух...


если, конечно, ты будешь хотя бы на ibase.ru статьи читать...

вообще интересная ситуация. человек загибает про нормальные формы, а в sql ни в зуб ногой...

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

SQL. Two DataSource in Grid

Сообщение Valery » 13 апр 2005, 12:55

kdv писал(а):если, конечно, ты будешь хотя бы на ibase.ru статьи читать...

вообще интересная ситуация. человек загибает про нормальные формы, а в sql ни в зуб ногой...
Написал вам после того как по юзал рекламированую вами книгу Мир интербейс.у меня редакция 2.Нашел там несколько несуразностей.Как истинно вредный человек пошел в книжный и сверился с 3 редакцией...
И это называется с исправленными ошибками ....Мда. Как у Крылова? В басне.
*********
Причем тут нормализация и SQL?Может я угольком на салфетке нарисовал структуру и с помощью зубила и IBExpert сформировал .gdb
*******
Объяснял же в начале что переношу ,базу с .DBF.Да опыт нулевой ну и что?Разве подсказать труднее чем эртефеэмить и флеймить?А еслиб вы нуждались в моей помощи например в хирургической мне по ходу надо было наплевать на клятву Гипократа и затеять разговор о влиянии философии Канта на экзистециализм Кафки? Мда...
Наверное заграница нам поможет.Мож какой индус или нигер не будет кивать на факинг мануал.

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 13 апр 2005, 13:26

Разве подсказать труднее чем эртефеэмить и флеймить?
Какие ламеры в последее время настырные пошли. :roll: Тебе не подсказывать надо, а разжевывать от самых азов... поэтому тебя и отсылают "слехка подучиться". Таблице связываются что ДБФные, что Интнбейзные ОДИНАКОВО!!! коль уж ты от ДБФов пляшешь.

Код: Выделить всё

SELECT Detail,Master from T_Detail,T_Master 
Where Master_ID=ID 
или

Код: Выделить всё

SELECT Detail,Master from T_Detail,T_Master 
Where Master_ID=ID and Detail.Master_ID = Master.Master_ID
Пусть джойны пока будут неявными, как научишься пользовать оные явно, так и пользуй.

Лысый
Сообщения: 177
Зарегистрирован: 08 ноя 2004, 08:20

Re: SQL. Two DataSource in Grid

Сообщение Лысый » 13 апр 2005, 13:30

Valery писал(а): Написал вам после того как по юзал рекламированую вами книгу Мир интербейс.у меня редакция 2.Нашел там несколько несуразностей.Как истинно вредный человек пошел в книжный и сверился с 3 редакцией...
И это называется с исправленными ошибками ....Мда. Как у Крылова? В басне.
Это ты про что? Расскажи

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 13 апр 2005, 13:44

Да уж, над таким действительно сначала должны поработать даже не индус с негром, а павиан с бабуином :lol:

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 апр 2005, 14:09

Написал вам после того как по юзал рекламированую вами книгу Мир интербейс.у меня редакция 2.Нашел там несколько несуразностей.Как истинно вредный человек пошел в книжный и сверился с 3 редакцией...
И это называется с исправленными ошибками ....Мда. Как у Крылова? В басне.
гм. как истинно вредный человек ты должен был сообщить об этом автору, тем более что он тут присутствует. Еще когда 2-ое издание прочитал. Дело в том, что ошибки могут возникать и при верстке, то есть, необязательно автор дал некорректный текст.
Ну и, если автор не узнает об ошибке, то как она может быть исправлена? Телепатически?

p.s. "если готов учиться, будь готов к тому, что тебя обзовут тупицей" (c) к сожалению не помню.

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

RE

Сообщение Valery » 13 апр 2005, 15:05

Ivan_Pisarevsky писал(а): настырные пошли.Таблице связываются что ДБФные, что Интнбейзные ОДИНАКОВО!!! коль уж ты от ДБФов пляшешь.

Код: Выделить всё

SELECT Detail,Master from T_Detail,T_Master 
Where Master_ID=ID 
или

Код: Выделить всё

SELECT Detail,Master from T_Detail,T_Master 
Where Master_ID=ID and Detail.Master_ID = Master.Master_ID
Я не настырный а вредный.Первый код я и использовал он дает избыточные данные.А вот второй сработал за это вам респект.Между прочим переделываю базу креаченую вашими девелоперами из богатой и изветсной фирмы(НижнНовг).Прочитав сообщения Мерлина на этом форуме я понял что ему действительно было трудно ответить что надо добавить только строчку 'and etc'.Между прочим и вам он соответственно отвечал.Вообщем большой вам сенк,можете открывать дверь в мой кабинет пинком.Пиво,коньяк в холодильнике.
***********************
For 'ГОША КУЦЕНКО'ака Лысый
Раздел посвященный компонентам интербейс совершенно не переделан,а все потому что книжка продает FIB.
Крылов ,однако.И ваще что там переделано и исправлено? Лучше я бы 4 сотни потратил скажем на фундаментальный учебник по БД&SQL.Ещеб на пЫво осталось.
Спасибо всем

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 апр 2005, 15:41

вашими девелоперами...
это какими такими "нашими" девелоперами???
что ему действительно было трудно ответить что надо добавить только строчку
дык, тебе скажешь, а ты завтра придешь за "строчками" order by, having, union...
Раздел посвященный компонентам интербейс совершенно не переделан,а все потому что книжка продает FIB.
дык. IBX и FIBPlus - близнецы-братья.
Лучше я бы 4 сотни потратил скажем на фундаментальный учебник по БД&SQL
никто не обещал тебя в книжке по интербэйзу учить SQL-у. Тот же упомянутый Грабер - 640 страниц чистого sql.

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

RE

Сообщение Valery » 13 апр 2005, 17:11

kdv писал(а):
вашими девелоперами...
это какими такими "нашими" девелоперами???
Рыбное место показать? выше поясенние что разработчики из Нижнего
дык, тебе скажешь, а ты завтра придешь за "строчками" order by, having, union...
Жадный,да? :)

дык. IBX и FIBPlus - близнецы-братья.
Однако один мой пост не прошел видно судьба... А как старался!
2изд стр 122
***********
а примерчики то разные у братишек...
никто не обещал тебя в книжке по интербэйзу учить SQL-у. Тот же упомянутый Грабер - 640 страниц чистого sql.
640 страниц чистого SQL- это что в новых единицах измерения?Я понимаю условный печатный лист или символ.1УПЛ -40000 знаков. Уменя например этого чистого сиквела 422 страницы. Мир интербейс 40упл,а упоминаемые мной в непрошедшем посте Ритчи& Керниган 1985 года 18.5 но в условных ценностях больше.
Для авторов МИ и будующих-лучше приведите листиги живых работающих приложений с коментами чем приводить такие примеры Или издатель требует словоблудия и массы скриншотов?
Кстати конкурирующия книга теперь мне видится ценнее.Масса всего вкусного...

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 апр 2005, 18:01

Жадный,да?
да жадный. я в свое время книжки читал, а не по форумам околачивался.
Однако один мой пост не прошел видно судьба... А как старался!
2изд стр 122
нету у меня второго издания. третье есть, навалом.
в третьем на этой странице описание компонент IBX.
а примерчики то разные у братишек...
допустим, разные. а зачем одинаковые?
640 страниц чистого SQL- это что в новых единицах измерения?
нет. это в страницах. Берем открываем книгу в конце, и смотрим какой номер страницы последний. Формат у книги Грабера и МИ одинаковый.
Для авторов МИ и будующих-лучше приведите листиги живых работающих приложений с коментами чем приводить такие примеры Или издатель требует словоблудия и массы скриншотов?
издатель не требует. Словоблудия требует контингент. Потому что не все такие умные.
Кстати конкурирующия книга теперь мне видится ценнее.Масса всего вкусного...
конкурирующая какая? Таких нет. Есть только еще одна - книга Скляра, но это фактически нелегальный перевод книги оригинальной документации Programmers Guide, которая нынче называется Embedded SQL Guide, и никому на дух не нужна.

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

RE

Сообщение Valery » 13 апр 2005, 20:03

kdv писал(а):
да жадный. я в свое время книжки читал, а не по форумам околачивался.
Вот и я батенька после прочтения сюда заглянул
О
нету у меня второго издания. третье есть, навалом.
в третьем на этой странице описание компонент IBX.
Ну так что там прос войство AllowAutoStart сказано или опять сантех... тьфуты корректор виноват
а примерчики то разные у братишек...
допустим, разные. а зачем одинаковые?
Ну батенька-сколькоже можно себе противоречить. если они одинаковые -братья типо так и приведите мне одинаковы примеры что бы я мог почувствовать разницу.А так сплошная реклама FIB.
Еще мне понравилось-так это ссылки в скольских моментах на апендикс,типа в [1]or [4]написано и нафик нам еще об этом говорить.

нет. это в страницах. Берем открываем книгу в конце, и смотрим какой номер страницы последний. Формат у книги Грабера и МИ одинаковый.
Ну та я же писал что у меня 420 страниц.
Перевод Лебедева.Редакция Булычева.
Вообщето в Grubber U читается как
У- типа закрытый слог однако.
издатель не требует. Словоблудия требует контингент. Потому что не все такие умные.
конкурирующая какая? Таких нет. Есть только еще одна - книга Скляра, но это фактически нелегальный перевод книги оригинальной документации Programmers Guide, которая нынче называется Embedded SQL Guide, и никому на дух не нужна.
Что то вы батенька опять себе противоречите.Значит руководство разработчика надух ненужно,а красивенькие скриншотики нужны.Возможно вы и правы ведь я купился :) . А вот 'контингент' юзающий QT уже через несколько дней изучения бежит покупать этот нелегальный перевод.К чему бы это?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 апр 2005, 20:43

если они одинаковые -братья типо так и приведите мне одинаковы примеры что бы я мог почувствовать разницу.А так сплошная реклама FIB.
У FIBPlus шире функциональность - почему бы и не прорекламировать? Но базовая функциональность одинаковая. Показывать FIBPlus на примерах IBX нет смысла. Если в примерах не использовать расширения FIBPlus, то будет все OK. Кстати, в начале главы приведена фраза про горе-девелоперов которые тупо пытаются повторить примеры FIBPlus на IBX.
Вообще, какие там сложности - если ты программер, то для тебя IBDataSet не отличается от pFIBDataSet. И IBTransaction будет одинаков с pFIBTransaction.
Ну та я же писал что у меня 420 страниц.
Перевод Лебедева.Редакция Булычева.
чего у тебя Лебедева и Булычева? Я про книгу "SQL" Грабера говорю.
И Gruber (а не Grubber) - это Грубер по немецки, а по английски ГрАбер, и нет там никакого закрытого слога. Вообще то.
Значит руководство разработчика надух ненужно,а красивенькие скриншотики нужны.Возможно вы и правы ведь я купился Smile . А вот 'контингент' юзающий QT уже через несколько дней изучения бежит покупать этот нелегальный перевод.К чему бы это?
не пойму, при чем тут QT. Книга Скляра это перевод progguide.pdf, на сайте можно взять. Никаких компонент там нет, там чистый embedded SQL, который используется при работе с GPRE. И без gpre больше половины этой книги можно выкинуть. Я так понимаю, что ты и документацию-то в глаза не видел.
А скриншоты - как же без них? И чем тебя так обидели, что книга не понравилась? я так и не понял претензий.

Valery
Сообщения: 13
Зарегистрирован: 12 апр 2005, 21:09

Сообщение Valery » 13 апр 2005, 22:00

Sorry! 'B' действительно лишняя-очипятка.
"чего у тебя Лебедева и Булычева?"
Чистого SQL 1993года издания
Если моя фамилия Pupkin значит по англицки я буду Фолдеров?
*******
О примерах!
Вот и надо было показать на одном и том же примере возможности.Истинна только в сравнении, а сравнивают с основой.
***********
О книге!
Если я беру книгу например 'настройка linux сервера
' ,то я надеюсь найти там как минимум пошаговую инструкцию и разъяснение непоняток,а не ссылки на HOWTO да еще на англицком.
На хрена козе баян? Если назвали МИ, так и будьте МИ.Обороты типа это вы знаете,это вам еще рано,это вы можете прочесть в юзер гвайд-неприемлены.
Про компоненты в Скляре я нечего не говорил.Я вопрошал почему начинающие сишники заюзывают эту книгу.
***********
вот из devguid
3. When the actions that make up the transaction have all succeeded, you can
make the database changes permanent by using the transaction component’s
Commit method:
IBTransaction.Commit;
Alternately, you can commit the transaction while retaining the current transaction
context using the CommitRetaining method:
IBTransaction.CommitRetaining;
всего несколько строчека,а сколько в книге?
а вот этого в книге нет
Commit is usually attempted in a try...except statement. That way, if a transaction cannot
commit successfully, you can use the except block to handle the error and retry the
operation or to roll back the transaction.
Типа придурок раз купился сам доходи или иди в апендикс на [xx]
Так будем последовательны или нет?
Так и останемся комерсами?

Ответить