Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
ВнизПара вопросов по InterBase Найти похожие ветки
← →
Ru (2003-10-07 11:55) [0]Имеем две таблицы в одной хранятся записи подчиненные по отношению к другой. Использую BLOB поля.
Сохраняю мастер-запись.
Сохраняю деталь-запись.
Считываю:
сначала мастер-запись - без проблем.
затем фильтрация по мастер-записи деталь-записи.
Далее делаем следующее:
for i:=0 to DetTBL.RecordCount-1 do begin
SomeDest:=ReadZ();//допустим это процедура считывания данных из текущей записи
DecTBL.Next;
end;
Вместо считывания, например, двух записей считывается одна - последняя.
что я делают сильно не так?
← →
Term (2003-10-07 11:57) [1]какие компанеты используеш?
← →
vm (2003-10-07 12:00) [2]Как выполнена связь Detail-Master, какие компонента доступа, как выполняется фильтрация, что внутри процедуры Readz?
← →
Ru (2003-10-07 12:03) [3]Компоненты доступа: IBX
Связь - ручками
← →
Малиновский Владимир (2003-10-07 12:10) [4]Попробуй заменить
for i:=0 to DetTBL.RecordCount-1 do begin
SomeDest:=ReadZ();
DecTBL.Next;
end
на
DetTBL.First // Или что там ?
while not DetTBL.EOF do begin
SomeDest:=ReadZ();
DecTBL.Next;
end
В IBX RecordCount хранит число РЕАЛЬНО считанных записей.
← →
Term (2003-10-07 12:10) [5]понятно что IBX, какие имено скорее всего не верно выполнена связь мастер детальный, так как фильтрация ваще не нужна для ентого
← →
Ru (2003-10-07 12:15) [6]>Малиновский Владимир (07.10.03 12:10) [4]
это и так делаю.
>Term © (07.10.03 12:10) [5]
если быть точным, то связи как таковой нет. Есть отдельные две таблицы с которые я и "дворкую влендишным способом".
← →
Term (2003-10-07 12:18) [7]
> "дворкую влендишным способом
это как ??????
← →
Малиновский Владимир (2003-10-07 12:21) [8]Наборы - то двунаправленные?
← →
Ru (2003-10-07 12:24) [9]>Term © (07.10.03 12:18) [7]
деталь таблицу фильтруем по мастер таблице - получаем набор данных. /пока работал с Paradox все так просто было/
← →
Term (2003-10-07 12:33) [10]так ты и в парадоксе сильно заблуждался, и сюда старые ошибки перенёс......
для парадокса нужно было связь по ключевым полям с индексами организовать, а то что ты делал, это не правильно
а в TIBDataSet там тоже всё по другому...
или я как понял ты при работе с IB пользуешся TIBTable, поэтому и фильтруеш???
← →
Ru (2003-10-07 12:38) [11]TIBDataBase //TIBTransaction
TIBDataSet - не BLOB данный получаю без проблем
TIBQuery - использую для получения BLOB данных
Select * from DetTBL
where id=id
id - первичный ключ
Метаданные:
CREATE TABLE DetTBL(
id INTEGER NOT NULL PRIMARY KEY,
...
← →
Term (2003-10-07 12:49) [12]
> Select * from DetTBL
> where id=id
может так where id=:id
← →
Ru (2003-10-07 13:06) [13]>Term © (07.10.03 12:49) [12]
Да, так и есть.
Может я вопрос непонятно сформулировал?
← →
Жук (2003-10-07 13:34) [14]Зачем такой странный цЫкл ?
← →
Жук (2003-10-07 13:35) [15]Зачем ненадёжный RecordCount ?
← →
Ru (2003-10-07 13:53) [16]>Жук © (07.10.03 13:34) [14]
привычки сложно менять
>Жук © (07.10.03 13:35) [15]
а что лучше?
← →
Delirium^.Tremens (2003-10-07 13:53) [17]В OnScroll мастера закрывай и открывай detail dataset, в котором query с условием where по id мастера.
← →
Ru (2003-10-07 14:01) [18]ладно попробую переформулировать вопрос, когда пойму, что от меня хотят
← →
Johnmen (2003-10-07 14:06) [19]>Delirium^.Tremens © (07.10.03 13:53) [17]
Думаешь поможет ? :)))
Особенно, когда "id - первичный ключ ... CREATE TABLE DetTBL(
id INTEGER NOT NULL PRIMARY KEY" в детальной табл. ???
← →
Term (2003-10-07 14:18) [20]а почему нельзя зависимую таблицу тоже через TIBDataSet сделать, тогда и связь организовать проще
← →
Term (2003-10-07 14:20) [21]
> CREATE TABLE DetTBL(
> id INTEGER NOT NULL PRIMARY KEY
????????????
← →
Ru (2003-10-07 14:22) [22]IBDataSet не использую (она для галочки)
Информацию беру через IBQuery.
← →
Ru (2003-10-07 14:24) [23]>Term © (07.10.03 14:20) [21]
Что именно не устраивает?
← →
Term (2003-10-07 14:31) [24]Как я понял это зависимая таблица.
а поле связи в подчинённой таблице не должно быть PRIMARY KEY
← →
Term (2003-10-07 14:33) [25]DetTBL.First ?
← →
Ru (2003-10-07 14:38) [26]>Term © (07.10.03 14:33) [25]
а в этом смысле. Ошибся чуток. там так: TBLDet :)
>Term © (07.10.03 14:31) [24]
у меня:
id INTEGER NOT NULL PRIMARY KEY,
idl INTEGER, - по этому полю я отслеживаю связь
← →
Ru (2003-10-07 14:39) [27]а вообще не парьте головы, я чуть позже переформулирую вопрос.
← →
Term (2003-10-07 14:41) [28]подключи грид подчинённой таблице посмотри какой набор возвращает запрос, токо цикл отключи
← →
Ru (2003-10-07 14:43) [29]>Term © (07.10.03 14:41) [28]
грид крайне мило напишет: (BLOB)
← →
Term (2003-10-07 14:46) [30]да я понимаю что напишет он очень романтично, просто скоко записей возвращает, и ваще ты увииш примерно то с чем работаеш, а вытаскивать из блоба это уже детали, я не про них говорю
← →
Ru (2003-10-07 14:50) [31]Всем спасибо за содействие. Завтра задам нормально сформулированный вопрос.
← →
Delirium^.Tremens (2003-10-07 15:51) [32]
> Johnmen © (07.10.03 14:06) [19]
>
> Думаешь поможет ? :)))
> Особенно, когда "id - первичный ключ ... CREATE TABLE DetTBL(
> id INTEGER NOT NULL PRIMARY KEY" в детальной табл. ???
Ты же знаешь как я читаю всякую пургу:
"Картинки и графики пропускаем, в революционную суть вникаем" (с)
:-)
Эту фразу я вообще слабо понял. И, насколько я ее ТЕПЕРЬ понял, у товарища отсутствует понимание сути реляционных баз. Или ошибка в пресловутой строке. Одно из трех. :-)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.012 c