SQL. Two DataSource in Grid
Модератор: kdv
SQL. Two DataSource in Grid
Приветствую.
При переходе на 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.
При переходе на 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.
Re: SQL. Two DataSource in Grid
Картёжи - это хорошо, это мы любим. А задать в запросе условия соответствия записей детали записи мастера не пробовал? Чтобы не получать произведение. Декартово, кстати.Valery писал(а):Приветствую.
При переходе на SQL сервер FB возникла проблема с предстовлением данных из двух наборов данных в одной таблице TDBGrid
запрос типа
SELECT Detail,Master from T_Detail,T_Master
Where Master_ID=ID
Выдает как и положено избыточные данные.Т.е. количество кортежей равно произведению кортежей обеих таблиц.Мне же необходим вывод неизбыточных данных
Где, простите? Имеется в виду view или left join? Дальше поскипал, поскольку всё равно ни хрена не понял.Valery писал(а): Пробовал и внешние представления.
Re: SQL. Two DataSource in Grid
View это кажись внутреннее представление.Merlin писал(а):Valery писал(а):
Где, простите? Имеется в виду view или left join? Дальше поскипал, поскольку всё равно ни хрена не понял.
Пробовал и правый и левый .
Лучше подскажите как запрос сформировать
Re: SQL. Two DataSource in Grid
Тяжко с тобой. Не знаю что ты пробовал, но про view - это круто.Valery писал(а): View это кажись внутреннее представление.
Пробовал и правый и левый .
Лучше подскажите как запрос сформировать
SELECT Detail,Master from T_Detail,T_Master
Where Master_ID=ID
это не запрос вообще, а некая фантазия на тему SQL, похожая на что-то только в мозгу автора. И что ты хочешь в итоге получить, тоже совершенно непонятно. Ты уж приведи настоящий запрос, да покажи пальцем чего надобно-то. Долго уговаривать и возиться не буду.
как еще проще объяснить что мне надо объеденить две или более таблицы(точнее некоторые поля) связаных мастер-детальная
что бы в гриде было плоское представление? стем чтобы можно было по совподающим символам введенных в Edit находить нужную запись.Пояснение для того чтоб небыло глупых вопросов зачем это нужно.
что бы в гриде было плоское представление? стем чтобы можно было по совподающим символам введенных в Edit находить нужную запись.Пояснение для того чтоб небыло глупых вопросов зачем это нужно.
SQL. Two DataSource in Grid
СПАСЫПО добрая фея,Тока скажи мнеMerlin писал(а):Короче. Не умеешь спросить по-человечи - пошёл ты к Граберу. Мартину. Про джойны читать. Это чтобы не давать глупых ответов.
джойн возвращает обнавленные результаты? Без реконекта неполучается....
Валерий! Какие "обнавленные" результаты? Любой SQL возвращает то, что его попросили. И если выполнить SQL еще раз - может вернуть и "обнавленные". Тока если ты на IBTransaction не тыкал, и ему параметры на read committed не менял, то никаких "обнавлений" тебе не будет.
О, сколько нам открытий чудных
готовит просвещенья дух...
если, конечно, ты будешь хотя бы на ibase.ru статьи читать...
вообще интересная ситуация. человек загибает про нормальные формы, а в sql ни в зуб ногой...
О, сколько нам открытий чудных
готовит просвещенья дух...
если, конечно, ты будешь хотя бы на ibase.ru статьи читать...
вообще интересная ситуация. человек загибает про нормальные формы, а в sql ни в зуб ногой...
SQL. Two DataSource in Grid
Написал вам после того как по юзал рекламированую вами книгу Мир интербейс.у меня редакция 2.Нашел там несколько несуразностей.Как истинно вредный человек пошел в книжный и сверился с 3 редакцией...kdv писал(а):если, конечно, ты будешь хотя бы на ibase.ru статьи читать...
вообще интересная ситуация. человек загибает про нормальные формы, а в sql ни в зуб ногой...
И это называется с исправленными ошибками ....Мда. Как у Крылова? В басне.
*********
Причем тут нормализация и SQL?Может я угольком на салфетке нарисовал структуру и с помощью зубила и IBExpert сформировал .gdb
*******
Объяснял же в начале что переношу ,базу с .DBF.Да опыт нулевой ну и что?Разве подсказать труднее чем эртефеэмить и флеймить?А еслиб вы нуждались в моей помощи например в хирургической мне по ходу надо было наплевать на клятву Гипократа и затеять разговор о влиянии философии Канта на экзистециализм Кафки? Мда...
Наверное заграница нам поможет.Мож какой индус или нигер не будет кивать на факинг мануал.
-
- Заслуженный разработчик
- Сообщения: 644
- Зарегистрирован: 15 фев 2005, 11:34
Какие ламеры в последее время настырные пошли.Разве подсказать труднее чем эртефеэмить и флеймить?

Код: Выделить всё
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
Re: SQL. Two DataSource in Grid
Это ты про что? РасскажиValery писал(а): Написал вам после того как по юзал рекламированую вами книгу Мир интербейс.у меня редакция 2.Нашел там несколько несуразностей.Как истинно вредный человек пошел в книжный и сверился с 3 редакцией...
И это называется с исправленными ошибками ....Мда. Как у Крылова? В басне.
гм. как истинно вредный человек ты должен был сообщить об этом автору, тем более что он тут присутствует. Еще когда 2-ое издание прочитал. Дело в том, что ошибки могут возникать и при верстке, то есть, необязательно автор дал некорректный текст.Написал вам после того как по юзал рекламированую вами книгу Мир интербейс.у меня редакция 2.Нашел там несколько несуразностей.Как истинно вредный человек пошел в книжный и сверился с 3 редакцией...
И это называется с исправленными ошибками ....Мда. Как у Крылова? В басне.
Ну и, если автор не узнает об ошибке, то как она может быть исправлена? Телепатически?
p.s. "если готов учиться, будь готов к тому, что тебя обзовут тупицей" (c) к сожалению не помню.
RE
Я не настырный а вредный.Первый код я и использовал он дает избыточные данные.А вот второй сработал за это вам респект.Между прочим переделываю базу креаченую вашими девелоперами из богатой и изветсной фирмы(НижнНовг).Прочитав сообщения Мерлина на этом форуме я понял что ему действительно было трудно ответить что надо добавить только строчку 'and etc'.Между прочим и вам он соответственно отвечал.Вообщем большой вам сенк,можете открывать дверь в мой кабинет пинком.Пиво,коньяк в холодильнике.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
***********************
For 'ГОША КУЦЕНКО'ака Лысый
Раздел посвященный компонентам интербейс совершенно не переделан,а все потому что книжка продает FIB.
Крылов ,однако.И ваще что там переделано и исправлено? Лучше я бы 4 сотни потратил скажем на фундаментальный учебник по БД&SQL.Ещеб на пЫво осталось.
Спасибо всем
это какими такими "нашими" девелоперами???вашими девелоперами...
дык, тебе скажешь, а ты завтра придешь за "строчками" order by, having, union...что ему действительно было трудно ответить что надо добавить только строчку
дык. IBX и FIBPlus - близнецы-братья.Раздел посвященный компонентам интербейс совершенно не переделан,а все потому что книжка продает FIB.
никто не обещал тебя в книжке по интербэйзу учить SQL-у. Тот же упомянутый Грабер - 640 страниц чистого sql.Лучше я бы 4 сотни потратил скажем на фундаментальный учебник по БД&SQL
RE
Рыбное место показать? выше поясенние что разработчики из Нижнегоkdv писал(а):это какими такими "нашими" девелоперами???вашими девелоперами...
Жадный,да?дык, тебе скажешь, а ты завтра придешь за "строчками" order by, having, union...

Однако один мой пост не прошел видно судьба... А как старался!
дык. IBX и FIBPlus - близнецы-братья.
2изд стр 122
***********
а примерчики то разные у братишек...
640 страниц чистого SQL- это что в новых единицах измерения?Я понимаю условный печатный лист или символ.1УПЛ -40000 знаков. Уменя например этого чистого сиквела 422 страницы. Мир интербейс 40упл,а упоминаемые мной в непрошедшем посте Ритчи& Керниган 1985 года 18.5 но в условных ценностях больше.никто не обещал тебя в книжке по интербэйзу учить SQL-у. Тот же упомянутый Грабер - 640 страниц чистого sql.
Для авторов МИ и будующих-лучше приведите листиги живых работающих приложений с коментами чем приводить такие примеры Или издатель требует словоблудия и массы скриншотов?
Кстати конкурирующия книга теперь мне видится ценнее.Масса всего вкусного...
да жадный. я в свое время книжки читал, а не по форумам околачивался.Жадный,да?
нету у меня второго издания. третье есть, навалом.Однако один мой пост не прошел видно судьба... А как старался!
2изд стр 122
в третьем на этой странице описание компонент IBX.
допустим, разные. а зачем одинаковые?а примерчики то разные у братишек...
нет. это в страницах. Берем открываем книгу в конце, и смотрим какой номер страницы последний. Формат у книги Грабера и МИ одинаковый.640 страниц чистого SQL- это что в новых единицах измерения?
издатель не требует. Словоблудия требует контингент. Потому что не все такие умные.Для авторов МИ и будующих-лучше приведите листиги живых работающих приложений с коментами чем приводить такие примеры Или издатель требует словоблудия и массы скриншотов?
конкурирующая какая? Таких нет. Есть только еще одна - книга Скляра, но это фактически нелегальный перевод книги оригинальной документации Programmers Guide, которая нынче называется Embedded SQL Guide, и никому на дух не нужна.Кстати конкурирующия книга теперь мне видится ценнее.Масса всего вкусного...
RE
Вот и я батенька после прочтения сюда заглянулkdv писал(а):
да жадный. я в свое время книжки читал, а не по форумам околачивался.
Ну так что там прос войство AllowAutoStart сказано или опять сантех... тьфуты корректор виноватО
нету у меня второго издания. третье есть, навалом.
в третьем на этой странице описание компонент IBX.
а примерчики то разные у братишек...
Ну батенька-сколькоже можно себе противоречить. если они одинаковые -братья типо так и приведите мне одинаковы примеры что бы я мог почувствовать разницу.А так сплошная реклама FIB.допустим, разные. а зачем одинаковые?
Еще мне понравилось-так это ссылки в скольских моментах на апендикс,типа в [1]or [4]написано и нафик нам еще об этом говорить.
Ну та я же писал что у меня 420 страниц.нет. это в страницах. Берем открываем книгу в конце, и смотрим какой номер страницы последний. Формат у книги Грабера и МИ одинаковый.
Перевод Лебедева.Редакция Булычева.
Вообщето в Grubber U читается как
У- типа закрытый слог однако.
издатель не требует. Словоблудия требует контингент. Потому что не все такие умные.
Что то вы батенька опять себе противоречите.Значит руководство разработчика надух ненужно,а красивенькие скриншотики нужны.Возможно вы и правы ведь я купилсяконкурирующая какая? Таких нет. Есть только еще одна - книга Скляра, но это фактически нелегальный перевод книги оригинальной документации Programmers Guide, которая нынче называется Embedded SQL Guide, и никому на дух не нужна.

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