|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
||||||
DBGrid с двумя таблицами06.10.2016, 19:57. Показов 3102. Ответов 41
Метки нет (Все метки)
в MS SQL созданы две таблицы.
как в 1 DBGrid закинуть определенные поля из двух таблиц? в дальнейшем эти таблицы будут изменятся(добавление. удаление записей) (представление которое можно создать и использовать ..этот вариант уже попробовал ... но с добавлением данных проблемы .якобы нельзя добавлять в такие таблицы из-за того что может повлиять на изменение записей в используемых таблицах)
0
|
||||||
| 06.10.2016, 19:57 | |
|
Ответы с готовыми решениями:
41
Запрос с двумя таблицами DBgrid связь между таблицами
|
|
86 / 86 / 24
Регистрация: 27.02.2010
Сообщений: 397
|
|
| 09.10.2016, 19:08 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|||||||||||
| 09.10.2016, 22:23 [ТС] | |||||||||||
|
kwinto, сейчас новый вопрос )
как в запросе select ! в части where присвоить idOwnerУ результат из ComboBox.ItemIndex
а если данных больше 10 шт? .. примерная форма ! в первой мы выбираем ИМЯ-фамилию и т.д и в дальнейшем выводится в лабел что будем редактировать.. и т.д
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
||||||
| 09.10.2016, 22:32 [ТС] | ||||||
|
и правильно ли будет выглядеть запрос на обновление данных?
AdoQuery1.Parameters.ParamByName('Data1' ).Value:=Edit1.Text; берем из -Ввод данных
0
|
||||||
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
||||||
| 09.10.2016, 23:08 | ||||||
|
Для этого нужно использовать DBLookupCombobox (пожалуй, второй и последний компонент, который имеет префикс DB и который можно использовать в любом проекте).
1. Разместить на форме отдельный ADOTable с привязкой через свой DataSource к нужной таблице. 2. В своействе ListSource DBLookupCombobox указать этот DataSource (свойство DataSource компонента не трогать). 3. В свойстве ListField указать поле из связанной таблицы которое будет отображаться для пользователя (допустим, имя). 4. В свойстве KeyField указать поле-идентификатор (ID). 5. При запуске не забыть открыть ADOTable (ADOTable1.Open). Чтобы узнать значение ID, выбранного пользователем из выпадающего списка пункта используют свойство KeyValue. Например.
1
|
||||||
|
97 / 97 / 25
Регистрация: 25.04.2016
Сообщений: 525
|
||
| 09.10.2016, 23:19 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|
| 09.10.2016, 23:33 [ТС] | |
|
Скандербег, попробую! спасибо!Скандербег, сделал.. вставил ..но свойства KeyValue не могу найти! я как понимаю это свойства аналогично Items
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|
| 09.10.2016, 23:34 [ТС] | |
|
Скандербег, и не активный он (..
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 09.10.2016, 23:42 | |
|
KeyValue свойство не публичное и его не видно в инспекторе объектов.
Чтобы активизировать нужно чтобы DataSet (ADOTable) с ним связанный был открыт (был активным), пункт 5 из моей инструкции. А зачем на форме идентификатор? Добавлено через 7 минут Сейчас не мешало бы выложить проект с базой. Помощь будет более эффективной.
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|
| 09.10.2016, 23:43 [ТС] | |
|
Скандербег, Мы выбираем что редактировать 1 комбо в нем - фамилия имя отчество . данные авто и т.д
индентификатором мы уточняем .. у кого редактируем .. а через обычный комбобокс можно это сделать?
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 09.10.2016, 23:44 | |
|
Можно и через обычный, но через DBLookupCombobox проще и без ненужной писанины.
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|
| 09.10.2016, 23:44 [ТС] | |
|
Скандербег, пожалуйста) правда бред еще ну да ладно)
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|||
| 09.10.2016, 23:47 | |||
|
Значение идентификаторов не должны мешать пользователю, т.к. он все равно их не может ни редактировать, ни как либо использовать. Добавлено через 1 минуту Если БД откроется, то посмотрю в части лукапа чего не так.
0
|
|||
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|
| 09.10.2016, 23:48 [ТС] | |
|
Скандербег, ну ...в общем я уже запутался . проект кинул... а щас запускаю и ошибки...чтоб его!
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 09.10.2016, 23:55 | |
|
Любопытно узнать, что предполагается редактировать на форме 3?
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|
| 09.10.2016, 23:58 [ТС] | |
|
Скандербег, Форма 3 это как мульти редактор .. редактируем поля из таблиц Owners и Cars
в комбобоксе 1 естественно выбираем что редактировать -Имя фамилия ... Модель авто и т.д если имя и фамилия то запрос идет на таблицу Owners а если модель авто или гос номер то идем в cars мне бы сейчас эту часть разобрать .. дальше будет практически все по аналогии сам запрос на обновление еще не успел вставить в делфи
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 10.10.2016, 00:05 | |
|
Но так не делают. Для владельца и авто нужны отдельные формы, т.к. по определению у них разные структуры данных,
а, следовательно, и состав компонентов для ввода данных тоже разный. Комбобокс (лукапКомбобокс) требуется в текущей ситуации только для редактирования данных по автомобилям (табл. cars), где нужно будет выбрать соответствующего владельца.
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|
| 10.10.2016, 00:08 [ТС] | |
|
Скандербег, так я хотел через условие... использователь отдельные АДОквери....блин.............можешь внести свою идею в проект?
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 10.10.2016, 00:15 | |
|
Идею я уже озвучил: для каждой таблицы своя форма для добавления данных и их редактирования.
Отдельные ADOQuery здесь ни при чем. Нужно иметь один который будет добавлять данные в разные таблицы. Его размещают (равно как и общий компонент ADOConnection) на специальной форме, которую зовут DataNodule. Удобна тем, что при разработке проекта есть куда положить не визуальные компоненты для разных нужд и общего достояния.
0
|
|
|
0 / 0 / 0
Регистрация: 13.04.2014
Сообщений: 98
|
|
| 10.10.2016, 00:17 [ТС] | |
|
Скандербег, хорошо..но ... как данные комбобокса вставить в запрос? не db...и т.д
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|||||||||||
| 10.10.2016, 00:36 | |||||||||||
|
Упорство достойное другого применения.
1. Надо выбрать данные из таблицы (через ADOTable, к примеру). 2. В цикле while not ADOTable.Eof do ... вставить данные: имя для выбора и идентификтор
А при использование DBLookupComboBox'а только нужно взять значение свойства KeyValue, а выше приведенная писанина не требуется. Добавлено через 4 минуты И лукапкомбобокс не активен, разумеется, потому что не выполнены как нужно инструкции, приведенные в посте #24.
0
|
|||||||||||
| 10.10.2016, 00:36 | |
|
Помогаю со студенческими работами здесь
40
Создание запроса с двумя таблицами
Зависимость между двумя таблицами ADOQuery Как создать связь между двумя таблицами Вопрос про связь между двумя таблицами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
[golang] Breadth-First Search
alhaos 19.05.2026
BFS (Breadth-First Search) — это базовый алгоритм обхода графа в ширину, который поуровнево исследует все связанные вершины. Он начинает с выбранной точки и проверяет всех соседей, прежде чем. . .
|
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера»
Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит.
Придуман Биллом Госпером в 1970-х, опубликован в. . .
|
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb">
<style>
<!]>
</ style>
<g id="bush">
</ g>
</ svg>
function fn(){
let rost;/ / высота древа
let xx=165,yy=210,w=256;
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|