Форум: "Базы";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
ВнизПри компиляции приложения закрываются все IBDataSet? Найти похожие ветки
← →
miwa © (2004-05-06 03:28) [0]В дизайн-тайм я вижу свои запросы (
Grid.DataSource.DataSet.Active = true
), а как только запускаю программу - все гриды девственно чисты (Grid.DataSource.DataSet.Active := true
). Использую IBX+EhLib. Это какие-то общие грабли, или я свои собственные изобрел?
Да. В FormCreate специально закомментировал процедуры, которые проводят загрузку данных - все равно после компиляции все гриды пустые.
← →
Johnmen © (2004-05-06 09:01) [1]>или я свои собственные изобрел?
Ага. Это они, Active = true в дизайн-тайм
← →
miwa © (2004-05-06 09:03) [2]А что такого? Я подсоединил датасеты в дизайнтайме только чтобы убедится что у меня есть коннект с базой. А активны они или нет - на результат это не влияет. Результат нехороший. :о((
← →
Johnmen © (2004-05-06 09:13) [3]>А что такого?
>Я подсоединил датасеты в дизайнтайме только чтобы убедится ...
Убедился - отсоедини. В смысле, закрой.
Коннект и оупен в ран-тайме.
← →
miwa © (2004-05-06 09:28) [4]Так и делаю. Все равно все датасеты пустые.
← →
Соловьев © (2004-05-06 09:34) [5]
> Да. В FormCreate специально закомментировал процедуры, которые
> проводят загрузку данных - все равно после компиляции все
> гриды пустые.
Интересно какие? Может ты транзакции закрыл?
← →
Miwa © (2004-05-06 10:36) [6]Не закрывал я транзакций. Тоесть, не так.
Как при закоментированных строках загрузки базы данных так и при разкоментированных; как при установленных active=true в дизайнтайме так и при неустановленных результат один и тот же:
в дизайнайм я могу видеть данные, которые получают соответствующие датасеты, а в рантайм - нет.
Какой код приводить? (в том смысле, что если надо код я приведу, весь и сразу не привожу из-за немаленьких размеров последнего).
← →
Соловьев © (2004-05-06 10:41) [7]
> Miwa © (06.05.04 10:36) [6]
создай новое приложение кинь туда джентельменский набор: датабейс, транзакцию и датасет и попробуй открыть одну таблицу. и запусти. если все ок - то смотри что ты там мадурил(телепатов нет и сказали что не будет их больше), если не появятся - может патч поможет. брать на www.ibase.ru
← →
Tomkat (2004-05-06 11:29) [8]Вот тебе пример:
есть форма, на ней IBDatabase, IBTransaction, IBDataSet, TDataSource, TGrid.
В дизай-таймеIBDataSet.Active:=false;
В ран-тайме по собтию MyForm.OnShow
Begin
ibDataSet.Open;
End
по собтию MyForm.OnClose
Begin
ibDataSet.close;
End ;
Я так всегда творю и проблем никаких ...
если я правильнопонял твою проблему ..
← →
Кщд © (2004-05-06 14:02) [9]Tomkat (06.05.04 11:29) [8]
каждый раз при Visible=true открывать набор - не есть хорошо в общем случае, имхо.
← →
Кщд © (2004-05-06 14:03) [10]Tomkat (06.05.04 11:29) [8]
каждый раз при Visible=true открывать набор - не есть хорошо в общем случае, имхо.
← →
Карелин Артем © (2004-05-06 14:05) [11]Может пользуешься персональным яфелем или внедренным FB?
← →
Miwa © (2004-05-06 17:43) [12]> Tomkat (06.05.04 11:29) [8]
Нет, проблема несколько в ином.
>Карелин Артем © (06.05.04 14:05) [11]
Тестирую на Interbase 5.5 на работи и Firebird 1.03 дома. В обеих случаях тот же баг.
Наверное, прав Соловьев - надо 25-й раз код шерстить. Если ничего не накопаю, опять приду жаловаться ;о))
← →
Miwa © (2004-05-06 21:03) [13]Нет, ничего таки не нашерстил. Так что все же прошу еще раз помощи. Код для FormCreate спрощенно выглядит так:
procedure TfrmMain.FormCreate(Sender: TObject);
var err:integer;
begin
PathProg:=ExtractFilePath(Application.ExeName);
LoadSettings(PathProg+"mividex.ini");
LoadLanguage(lang);
LoadSkin(skin);//skin - это глобальная переменная
LoadDBFilms(FilmsDB);//так же как и остальные
LoadDBFiles(FilesDB);//FilesDB="правильный путь к базе"
for err:=0 to frmMain.ComponentCount-1 do
if (Components[err].ClassName = "TDBGridEh")
then (Components[err] as TDBGridEh).RestoreColumnsLayoutIni(PathProg+"MiVidEx.ini",(Components[err] as TDBGridEh).Name,[crpColWidthsEh]);
LoadPathes(clbPathes);
wbbFilms.Navigate("about:blank");
end;
Собственно LoadDBFiles, если спростить, то такая:function LoadDBFiles(DataBase:string):integer;
var i:integer;
err: Exception;
begin
try
CheckDB(dtmData.ibdFiles, DataBase);
for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
try
if dtmData.ibdFiles.DataSets[i].ClassType = TIBDataSet
then dtmData.ibdFiles.DataSets[i].Active:=true;
except
end;
//дальше несущественно
except
on err:exception do begin
result:=-1;
showmessage(err.Message);
end;
end;
end;
Ну и выделенная процедурка:procedure CheckDB(DataBase:TIBDataBase;path:string);
begin
with DataBase do begin
Connected:=false;
DatabaseName:=path;
Params.Clear;
Params.Add("user_name=MIVIDEX");
Params.Add("password=mividex");
Params.Add("lc_ctype=WIN1251");
Open;
DefaultTransaction.Active:=true;
end;//with
end;
Вот...
А теперь еще раз вопросс: почему вышенаведенный код не призводит к загрузке базы?
← →
Miwa © (2004-05-11 13:20) [14]Мда.
В горы съездил, отдохнул, вроде, а даже со свежей головой ничего придумать не могу. Помогите нерадивому :о((.
← →
Fay © (2004-05-11 13:57) [15]А в dt и rt на одну и ту же базу смотрим?
← →
miwa © (2004-05-11 14:21) [16]Только что проверял. Да. Правда, в DT она была прописана, как .\files.gdb а в RT - полное имя(получаю с ини-файла). Поменял (теперь всюду - полное имя, еще раз повторюсь - правильное), но ничего не помогло.
← →
Плохиш (2004-05-11 14:28) [17]>Miwa © (06.05.04 21:03) [13]
А Вы вообще знаете для чего в Delphi кнопки F7/F8 существуют?
← →
miwa © (2004-05-11 14:33) [18]Как ни странно ;о)).
Более того, я по Ф7 пробежался по всему коду загрузки программы. И она, сосиска разтакая, ни разу нигде не ругнулась. Все всюду хорошо, да только данных в гридах как не было, так и нет.
← →
Плохиш (2004-05-11 14:37) [19]>miwa © (11.05.04 14:33) [18]
тогда одно из двух, или наборы данных пустые, или код открытия их не выполняется.
← →
miwa © (2004-05-11 14:44) [20]Минут пять назад запустил следующий код:
with dtmData.IBQuery1 do begin
SQL.Add("SELECT * FROM files");
Open;
s:="";
while not eof do begin
s:=s + Fields[0].AsString;
end;
showmessage(s);
end;
Жду. Выполняется. В таблице files до сотни записей.
Нет, код так и не зпустился. Скомпилировал приложение, запустил напрямую (не из Дельфи) - заняло 98% рессурсов и все.
Копаю дальше. Не подскажете, куда?
Кстати, могла ли проблема вылезти при смене юзера (с SYSDBA на MIVIDEX)? При том, что в DT и IBExpert та же смена прошла безболезненно.
← →
Соловьев © (2004-05-11 14:47) [21]
> with dtmData.IBQuery1 do begin
> SQL.Add("SELECT * FROM files");
> Open
SQL.Clear;
> Все всюду хорошо, да только данных в гридах как не было,
> так и нет.
Так на всякий случай - а гриді подключены к сорсам?
И еще - делал как я говорил? новый проект?
> (с SYSDBA на MIVIDEX)?
а как это? вроде этого нельзя сделать никак :)
← →
Miwa © (2004-05-11 14:59) [22]> 20
Конечно, там я пропустилNext;
. С "некстом" все ОК.
Тоесть, я вижу ети чертовы данные. Блин.
>21
>SQL.Clear;
Знаю. Это тестовый запрос.
>Так на всякий случай - а гриді подключены к сорсам?
Да. В дизайн-тайме же все видно.
>И еще - делал как я говорил? новый проект?
Да. В новом проекте - все в порядке.
>а как это? вроде этого нельзя сделать никак :)
Не, ну почему же :о))
Сперва добавил нового юзера на сервере, потом поменял параметры
соединения (username=sysdba на username=mividex).
Программа работает с двумя базами и с "files" я думал, что все
закончил. Поетому, добившись исполнения нужных мне функций я не
смотрел на нее уже с месяц. А когда посмотрел... Вот...
← →
Соловьев © (2004-05-11 15:04) [23]
> Сперва добавил нового юзера на сервере, потом поменял параметры
аа... ты про это :)
← →
Соловьев © (2004-05-11 15:15) [24]
> Сперва добавил нового юзера на сервере, потом поменял параметры
>
>
> соединения (username=sysdba на username=mividex).
а правда ты дал ему? и еще в дизайне SYSDBA?
← →
Соловьев © (2004-05-11 15:17) [25]
> а правда
:) - права
← →
miwa © (2004-05-11 15:19) [26]Ага.
Копаю дальше.
В тестовом запросе SQL сделал такой же, как в одном из неработающих датасетов.
И данные вижу, блин! Тоесть, вроде бы проблемма в том, что не открываются сами датасеты в следующих строках (13-й ответ)for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
try
if dtmData.ibdFiles.DataSets[i].ClassType = TIBDataSet
then dtmData.ibdFiles.DataSets[i].Active:=true;
except
end;
Но почему?
Поменял приведенный фрагмент на такой:
for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
if dtmData.ibdFiles.DataSets[i].ClassType = TIBDataSet then
try
dtmData.ibdFiles.DataSets[i].Open;
except
on err: exception do showmessage(err.message);
end;
И НИ ОДНОГО СООБЩЕНИЯ!
Тоесть, датасеты открываются?!?!
Иду вешаться.
← →
miwa © (2004-05-11 15:20) [27]Ага.
Копаю дальше.
В тестовом запросе SQL сделал такой же, как в одном из неработающих датасетов.
И данные вижу, блин! Тоесть, вроде бы проблемма в том, что не открываются сами датасеты в следующих строках (13-й ответ)for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
try
if dtmData.ibdFiles.DataSets[i].ClassType = TIBDataSet
then dtmData.ibdFiles.DataSets[i].Active:=true;
except
end;
Но почему?
Поменял приведенный фрагмент на такой:
for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
if dtmData.ibdFiles.DataSets[i].ClassType = TIBDataSet then
try
dtmData.ibdFiles.DataSets[i].Open;
except
on err: exception do showmessage(err.message);
end;
И НИ ОДНОГО СООБЩЕНИЯ!
Тоесть, датасеты открываются?!?!
Иду вешаться.
← →
Плохиш (2004-05-11 15:27) [28]>miwa © (11.05.04 15:20) [27]
Осталось только строчку
> if dtmData.ibdFiles.DataSets[i].ClassType = TIBDataSet then
Заменить на
if dtmData.ibdFiles.DataSets[i] is TIBDataSet then
или выкинуть, для проверки, совсем.
← →
Плохиш (2004-05-11 15:28) [29]
> И НИ ОДНОГО СООБЩЕНИЯ!
> Тоесть, датасеты открываются?!?!
или код не выполняется, не забываем.
← →
miwa © (2004-05-11 15:31) [30]>25
Конечно что дал.
Говорю - в ИБЭксперте, дизайнтайме и рантайме все одинаково, да только в рантайме нифига не видно.
Может, это ЭхЛиб глючит? Никто ни с чем похожим не встречался?
>модератор
27-й пост - результат ошибки. Тоесть, у меня загрузилась "Internal server error" и я нажал "<--", "Добавить".
← →
miwa © (2004-05-11 15:41) [31]>28
>Заменить на if dtmData.ibdFiles.DataSets[i] is TIBDataSet then
[Error] shared.pas(314): Operator not applicable to this operand type
> выкинуть, для проверки, совсем.
Получил только "Empty SQL statement" для четырех IBQuery, которые заполняются позже.
>или код не выполняется, не забываем.
Тоесть, по F7 выполняется, а по F9 - нет? По F7, кстати, тоже ничего не ругается, но и данных не видно.
Кстати, в 13 я привел фрагменты кода, которые грузят данные. Все они обрамлены try-except-тами, в которых есть showmessage(err.message) или result:=-1. Но ни один из них не срабатывает. Так что код, наверное, выполняется.
← →
div © (2004-05-11 15:54) [32]был у меня однажды такой прикол - в Database случайно поставил значение свойства IdleTimer в 10... в дизайне все есть, запускаю - все пусто... долго же я боролся... посмотри может и тебя такая же "беда" )))
← →
miwa © (2004-05-11 16:06) [33]Нет, я, наверное, другое свойство поменял ;о)). Вообще-то они у меня дефолтные кроме имени, транзакции и имены БД. А. Еще loginprompt=false, по-дефолту, вроде, нет. :о)).
← →
div © (2004-05-11 16:15) [34]заинтересовал меня следующий код:
for err:=0 to frmMain.ComponentCount-1 do
if (Components[err].ClassName = "TDBGridEh")
then (Components[err] as TDBGridEh).RestoreColumnsLayoutIni(PathProg+"MiVidEx.ini",(Components[err] as TDBGridEh).Name,[crpColWidthsEh]);
открой свою ini-шку и сотри все сохраненные настройки гридов...
← →
Miwa © (2004-05-11 18:21) [35]>34
>открой свою ini-шку и сотри все сохраненные настройки гридов.
Нет, не прошло :о((.
← →
div © (2004-05-11 18:42) [36]очень похоже что код:
for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
if dtmData.ibdFiles.DataSets[i].ClassType = TIBDataSet then
try
dtmData.ibdFiles.DataSets[i].Open;
except
on err: exception do showmessage(err.message);
end;
выполняется ДО того как происходит внутреннее связывание DataSet"ов с DataBase. Попробуй поставить в опциях проекта свой дата-модуль (dtmData) ДО главной формы (frmMain)...
← →
miwa © (2004-05-11 18:54) [37]>div © (11.05.04 18:42) [36]
Я очень благодарен за проявленное внимание, но все же... Вот отрывок из .dpr файла:
Application.CreateForm(TdtmData, dtmData);
Application.CreateForm(TfrmMain, frmMain);
Это наверное, то же, что и поставить в опциях проекта свой дата-модуль (dtmData) ДО главной формы (frmMain).
Вопросс открыт.
← →
Miwa © (2004-05-12 09:37) [38]Все еще ничего не накопал.
← →
div © (2004-05-12 09:53) [39]попробуй
if dtmData.ibdFiles.DataSets[i].ClassType = TIBDataSet then ...
заменить на:if dtmData.ibdFiles.DataSets[i] is TIBDataSet then ...
← →
div © (2004-05-12 09:56) [40]или вообще убери эту проверку - она лишняя...
← →
Соловьев © (2004-05-12 09:57) [41]
> Miwa © (12.05.04 09:37) [38]
кнопки F5, F7 и F8 знаешь?
← →
div © (2004-05-12 09:59) [42]поставь брэйкпоинт на строке:
dtmData.ibdFiles.DataSets[i].Open;
и посмотри выполняется ли вообще этот код... дальше будем посмотреть...
← →
miwa © (2004-05-12 10:24) [43]
> div ©
См. (31).
> Соловьев ©
См. (17-18).
> [42] div © (12.05.04 09:59)
> и посмотри выполняется ли вообще этот код...
Выполняется, будь он неладен. Проверял уже.
← →
div © (2004-05-12 10:32) [44][Error] shared.pas(314): Operator not applicable to this operand type.??? Странно у меня все в порядке. А что это за модуль shared.pas???
← →
miwa © (2004-05-12 10:38) [45]Это модуль, в котором находятся функции загрузки данных. Он - в одном каталоге с остальными файлами программы. Если быть более точным, то в shared.pas находятся функции LoadDBFiles и CheckDB. FormCreate - в frmMain.pas.
Иду смотрю, почему у меня не в порядке.
← →
miwa © (2004-05-12 11:08) [46]Интерессно, а могло так быть, что у меня в shared.pas не подключился модуль system? Извините за возможно тупой вопросс, просто я уже ничего не соображаю. Тем не менее, ошибка Operator not applicable to this operand type никуда не делась. Она же проявляется при любой комбинации скобок вокруг is с операндами и в любом модуле проекта.
← →
div © (2004-05-12 12:07) [47]покажи интерфейсную часть модуля shared.pas
← →
miwa © (2004-05-12 12:16) [48]
unit shared;
interface
uses SysUtils, Classes, IBDatabase, DB, IBCustomDataSet, IBQuery, Buttons,
CheckLst, Windows, IniFiles, Forms, Graphics, Masks, IB, Controls,
StrUtils, StdCtrls,
data, finfo, dialogs, seek;
type
PnetResourceArr = ^TNetResource;//для сканирования сети
PList = ^TStringList; //дополнительно
var
skin,
PathProg,
DefPoster,
LngFile,
MiVideoPath,
FilesDB, FilmsDB:string;
lang: TStringList;
//db "films"
Countries: TIDList;
Professions: TIDList;
Zhanres: TIDList;
//db "files"
notadded: TStringList;
files: TIDList;//не ставит, зараза, "Юник" на "варчар (256)"
function LoadLanguage(FileName:string):integer;
procedure ApplyLanguage;
function LoadSettings(FileName:string):integer;
function TryLoadPict(source,numb:string;dest:TBitBtn):integer;
function LoadSkin(SkinDir:string):integer;
function CheckDB(DataBase:TIBDataBase;path:string):integer;
function LoadDBFilms(DataBase:string):integer;
function LoadDBFiles(DataBase:string):integer;
function LoadPathes(dest: TCheckListBox):integer;
function SavePathes:integer;
function SaveSettings(FileName:string):integer;
function GetFileVersion(const FileName: string; separator:char): string;
function GetLANResources(ListRoot:PNetResource; var lst: PList): integer;
procedure SearchMedia;
function TryAddFile(FileName:TFileName):integer;
function AnalizeHTML(sourcefile:string):integer;
procedure SaveListToDB(var src: TIDList; table, f_id, f_name: string);
function GenerateHTML(id:integer):string;
function AnalizeLog(FileName: TFileName;id:integer):integer;
//а это с 7-й версии
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
function IntToTime(i:integer):TDateTime;
function ExtractOnlyFileName(const FileName: string): string;
function MakeItem(input,comment,zhanr:string):string;
implementation
uses main;
//=========================================================================
← →
div © (2004-05-12 12:45) [49]а ты нигде случайно не переопредилил тип TIBDataSet? вообще очень странно...
> Тем не менее, ошибка Operator not applicable to this operand type никуда не делась. Она же проявляется при любой комбинации скобок вокруг is с операндами и в любом модуле проекта.
а она "проявляется" при проверке любых классов?
← →
miwa © (2004-05-12 12:56) [50].
> а ты нигде случайно не переопредилил тип TIBDataSet
Нет. И намеренно тоже ;о))
> а она "проявляется" при проверке любых классов?
Да. Во всяком случае, для TForm, TPageControl, TBitBtn, TListBox...
Кстати, если убрать.ClassType
- тогда все ок:if frmMain is TForm then showmessage("well..");
Видим надпись
← →
div © (2004-05-12 13:01) [51]> Кстати, если убрать .ClassType - тогда все ок:
> if frmMain is TForm then showmessage("well..");
кстати его и надо было убрать... внимательно смотри как тебе писали...
← →
div © (2004-05-12 13:03) [52]Хэлп. Цитирую: "Avoid using ClassType in application code."
← →
miwa © (2004-05-12 13:05) [53]Блин. Торможу. Да, так и писали, извините.
И все же мы немножко отвлеклись, Вы не считаете?
← →
div © (2004-05-12 13:34) [54]смотри нигде по коду не вызывается Transaction.Commit или Transaction.Rollback? Не закрывается ли соединение? Проверь IdleTimer у Transaction (у Database вроде проверил). Если с DB компонентами все впорядке, и DataSet"ы заполнены, значит проблемы с DBGridEh...
← →
miwa © (2004-05-12 13:53) [55]Значит, проблемы з DBGridEh... Плохо.
Всем спасибо за помощь, иду играться дальше.
Проблемма пока остается открытой, если кто чего надумает - буду очень рад.
← →
div © (2004-05-12 13:55) [56]в чем я сильно сомневаюсь... )))
← →
miwa © (2004-05-12 14:01) [57]Э нет, все же не DBGridWEh!!!
Значит так: бросил на форму обычний грид, указал ему датасорс с датасетом - тоже пустой.
Дальше. Сделал явно ошибочный код:for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
if dtmData.ibdFiles.DataSets[i] is TIBDataSet then
try
dtmData.ibdFiles.DataSets[i].Active:=true;
dtmData.ibdFiles.DataSets[i].Open;//а ведь он уже открыт!!!
except
on err: exception do showmessage(err.message);
end;
И все же исключения не увидел.
Так что проблема все же в наборах данных.
Только вот где?..
Мля!..
← →
div © (2004-05-12 14:09) [58]ну допустим этот код и не должен вызывать исключения... а вообще для уверенности - убери пока блок try ... except, и оставь только открытие датасетов; и сделай следующее:
dtmData.ibdFiles.DataSets[i].Active:=true;
if dtmData.ibdFiles.DataSets[i].RecordCount <= 0 then
raise Exception.Create("Datataset emty: " + dtmData.ibdFiles.DataSets[i].Name);
это для полной уверенности что у тебя есть данные в датасетах...
← →
Плохиш (2004-05-12 14:09) [59]>miwa © (12.05.04 14:01) [57]
> dtmData.ibdFiles.DataSets[i].Active:=true;
> dtmData.ibdFiles.DataSets[i].Open;//а ведь он уже
> открыт!!!
> except
> on err: exception do showmessage(err.message);
> end;
>
> И все же исключения не увидел.
А заглянуть в реализацию Open не судьба?
← →
div © (2004-05-12 14:18) [60]кстати о птичках (с)... только что посмотрел - процедура ShowMessage(...) - не отображает сообщение при вызове в обработчике OnCreate главной формы (а у тебя по сути так и есть)... так что не факт что у тебя нет исключений!!!
← →
div © (2004-05-12 14:20) [61]наврал... ))) извиняюсь
← →
miwa © (2004-05-12 14:42) [62]
> А заглянуть в реализацию Open не судьба?procedure TDataSet.Open;
begin
Active := True;
end;
Жаль что нет смайлика, обозначающего покраснение ;о)).
> для полной уверенности что у тебя есть данные в датасетах...for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
if dtmData.ibdFiles.DataSets[i] is TIBDataSet then begin
dtmData.ibdFiles.DataSets[i].Active:=true;
if dtmData.ibdFiles.DataSets[i].RecordCount <=0 then
raise exception.Create("Dataset empty: "+dtmData.ibdFiles.DataSets[i].Name);
end;
Ну, увереность-то есть, так как никаких меседжей нет...
Продолжая тему смайликов
:o(( :"o(( :oE
← →
Miwa © (2004-05-12 15:10) [63]Да. Еще на тему уверенности о наличии данных:
for i:=0 to dtmData.ibdFiles.DataSetCount-1 do
if dtmData.ibdFiles.DataSets[i] is TIBDataSet then
begin
dtmData.ibdFiles.DataSets[i].Active:=true;
if dtmData.ibdFiles.DataSets[i].RecordCount <=0 then
raise exception.Create("Dataset empty: "+dtmData.ibdFiles.DataSets[i].Name);
while not dtmData.ibdFiles.DataSets[i].Eof do
begin
s:=s+dtmData.ibdFiles.DataSets[i].Fields[1].AsString+#13#10;
dtmData.ibdFiles.DataSets[i].Next;
end;
S после всего этого равно списку файлов, которые есть в таблице...
← →
div © (2004-05-12 15:20) [64]а как насчет связки DataSet -> DataSource -> DBGridEh? Нигде не изменяется?
когда не остается логичных вариантов надо проверять фантастические )))
← →
div © (2004-05-12 15:24) [65]А может где-то вызывается DisableControls?
← →
miwa © (2004-05-12 18:12) [66]Отдохнул, подумал, успокоился ;о)).
Нет, связка нигде не изменяется. DisableControls нигде не вызывается.
> когда не остается логичных вариантов надо проверять фантастические
> )))
А вот кто скажет, что делать, когда проверены фантастические варианты?
← →
div © (2004-05-12 18:34) [67]DataSource.Enabled = True?
← →
Miwa © (2004-05-12 18:51) [68]Ну, это даже не фантастика. Конечно true.
← →
miwa © (2004-05-14 17:08) [69]Что же. Отругался. А теперь обьясню где была фантастика. В процедуре
procedure CheckDB(DataBase:TIBDataBase;path:string);
раньше былоif connected then exit;
, а потом я почему-то исправил наConnected:=false;
.
И всего-то!!!
Три дня самостоятельных поисков, мля!
Два дня напряга людей на форуме, мля!
Потом еще два дня самостоятельных поисков, мля!
И все из-за одной строки! МЛЯ!!!!!
А вот теперь обьясните мне, пожалуйста, почему? Почему эта замена призвела к тому, что база перестала грузится?
Да. Кстати. Регулярный бекап рулит ;о)).
← →
div © (2004-05-15 16:02) [70]совет: в будущем постарайся быть просто внимательней...
успеха...
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
Память: 0.66 MB
Время: 0.05 c