Конференция "Начинающим" » После добавления поля в dataset, access… при скроле [D7]
 
  • Konstantin-78 © (08.02.17 23:04) [0]
    Доброе время суток форумчане,
    Такой вопрос:
    Делал программу с базой данных№1, в котором есть dataset1 – master, dataset2-detail, привязанный к двум таблицам. Добавил в dataset2, новое поле «name_pair», типа lookup, для отображения в нем содержимого поля «name» в dataset1
    Теперь при пролистывании dataset1, возникает:

    «Access violation at address 004CC6F0 in module 'MetaTrader.exe'. Read of address 00000014»

    причем, если сразу спозиционироваться на записи в dataset1 в которой есть привязка в dataset2 - все показывает, но при дальнейшей прокрутке - опять таже ошибка.

    Мне так кажется, при ошибка летит тогда, когда в dataset2, есть данные.
    При удалении поля «name_pair» - ошибка пропадает.

    Решил создать чистый эксперемент, новое приложение, создал новую базу №2 (2 таблицы, несколько полей в каждой, завел несколько строк), два новых dataset, завязал их межу собой, во второй dataset добавил новое поле (в общем все как и в основной программе) – все работает.

    В этом же приложении добавил dataset3 и dataset4 связал их (рис. https://www.dropbox.com/s/sunz45uvft7fwlm/Untitled.png?dl=0), и привязал базе №1, таже самая фигня.

    Выходит у меня сама база где-то неправильная?

    Заранее спасибо.

    Нашел как получается ошибка:
    Если в Grid попадают все строки/данные (по высоте), то я могу свободно перемещаться вверх/вниз - ошибки НЕ будет.
    Если же в Grid попадает НЕ все строки (по высоте), ТО ВЫЛЕТАЕТ ошибка...
  • sniknik © (08.02.17 23:34) [1]
    > «Access violation at address 004CC6F0 in module 'MetaTrader.exe'. Read of address 00000014»
    004CC6F0 вот это адрес места где происходит исключение, в дельфе есть функция в меню "find error", используй ее.
  • Konstantin-78 © (09.02.17 14:58) [2]
    При установке галки "UseDebug DCUs" ("Options - Compiler"), во время этой ошибки меня выкидывает в модуль "...delphi7\source\vcl\IBCustomDataSet.pas" на строку №1847 (на "function TIBCustomDataSet.IsVisible(Buffer: PChar): Boolean;")... А в этом модуле я изменять ничего не хочу
  • rrrrr © (09.02.17 15:26) [3]
    мегатрейдер, а не хочешь использовать сукуэль вместо лукапа?
    чтоб по взрослому зелень косить.
  • sniknik © (09.02.17 17:19) [4]
    > А в этом модуле я изменять ничего не хочу
    там ты вряд ли найдешь ошибку, она там происходит да, но от твоих действий, нужно от этого места "раскрутить" код назад, до того как ты что то делаешь. трассировка F7 F8.

    > function TIBCustomDataSet.IsVisible(Buffer: PChar): Boolean;
    почему кстати IB? через что к базе подключаешься?

    > использовать сукуэль вместо лукапа
    +
    точно также можно мастер-детайл делать как и на таблицах. но  
    > по взрослому
  • sniknik © (09.02.17 17:22) [5]
    > через что к базе подключаешься?
    бл...
    > access… при скроле
    это не access тапа база, а сокращение вместо AV. зря отвечал.
  • Konstantin-78 © (09.02.17 17:58) [6]
    у меня FireBird
  • Konstantin-78 © (09.02.17 18:01) [7]
    >да, но от твоих действий, нужно от этого места "раскрутить" код назад, до того как ты что то делаешь. трассировка F7 F8.

    Что касается кода - ЕГО ВООБЩЕ НЕТ, кроме запросов в dataset
  • Inovet © (09.02.17 18:53) [8]
    Типы полей везде одинаковые?

    Ещё в Д7 надо было компонеты обновить с сайта ibase.ru, в стандартных какой-то баг.
 
Конференция "Начинающим" » После добавления поля в dataset, access… при скроле [D7]
Есть новые Нет новых   [134427   +38][b:0][p:0]