Текущий архив: 2003.05.22;
Скачать: CL | DM;
Вниз
Ошибка при динамическом создание обекта Найти похожие ветки
← →
Навичек (2003-04-30 03:25) [0]в процедуре создаю обект
var adods: TADODataSet;
begin
adods := TADODataSet.Create(Self);
при выполнении вылетает с ошибкой
Project reised exception class EOLEexception with message
"Timeout expired" причем в других модуоях все работает а в этом никак мож кто подскажет в чем причина
Использую D6 sp2, w2k
← →
Babay © (2003-04-30 04:51) [1]А ты уверен что это именно во время Create происходит?
Эта ошибка вылазит обычно когда истекает время подключения к серверу(если не ошибаюсь).
У меня твой код работает нормально (правда под Д7)
← →
Навичек (2003-04-30 06:33) [2]трассировка показала что на этой команде вылетает... :( висит сек 30 а потом вылетает... точно на ней
← →
Babay © (2003-04-30 06:38) [3]->висит сек 30 а потом вылетает
Такое ощущение что во время создания идет конект к базе, база не находится время ожидания истекает и вот..
хм. непонятно....
а ежели побольше инфы, поподробнее?
← →
Rol (2003-04-30 06:40) [4]Ну, а что насчёт того, чтобы создавать с Active:=false?
← →
Babay © (2003-04-30 06:45) [5]To Rol
->Ну, а что насчёт того, чтобы создавать с Active:=false?
Это как? ведь объект еще не создан... Человек же говорит что во время Create ошибка. Даже исходник привел...
← →
Rol (2003-04-30 06:52) [6]>Babay
А я вот не верю ему :). У меня всё работает.
И к какой базе идёт коннект, коли св-во ConnectionString не задано?
← →
Separator © (2003-04-30 06:54) [7]var adods: TADODataSet;
begin
adods:= TADODataSet.Create(Self);
with adods do begin
Active:= false
end
end;
← →
Babay © (2003-04-30 06:59) [8]То Rol
Да я вот тоже думаю, что тут не так. У меня тоже работает. :=))#
← →
Separator © (2003-04-30 07:11) [9]
> Навичек
Покажи нам, что твориться в TADODataSet.Create
← →
Навичек (2003-04-30 07:28) [10]не поверите у меня местами тоже все работает.... но вот в одном месте почему то глючит ..... второй день бьюсь (исходник правда не мой)..... но метод Create нигде не перекрывался... то есть все по дефолту.... какую конкретно дополнительную информацию нужно выдать
Конектица пытаюсь к MS SOL 7.
← →
Babay © (2003-04-30 08:08) [11]код процедуры полностью и пояснения когда и где она запускается.
Проверь самомтоятельно, повесь это дело на отдельный батон должно заработать. ежели не заработало то проблема гдето в другом месте
твой код в отдельном батоне работает
Procedure TForm1.Button1Click(Sender:TObject);
var adods: TADODataSet;
begin
adods := TADODataSet.Create(Self);
Adods.free;
end;
так никаких проблем.
← →
Навичек (2003-04-30 08:43) [12]описание класса следующие
type
TpdspTableScheduleForm = class(TForm)
adodsTableSchedule: TADODataSet;
dbgeTableSchedule: TDBGridExt;
dsTableSchedule: TDataSource;
adoeqTableSchedule: TADOExQuery;
Memo1: TMemo;
procedure dbgeTableScheduleKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
protected
procedure Loaded; override;
public
{ Public declarations }
procedure adodsTableSchedule_Refresh;
function adodsTableScheduleMakeSQLText: String;
end;
var
pdspTableScheduleForm: TpdspTableScheduleForm;
procedure TpdspTableScheduleForm.FormShow(Sender: TObject);
begin
adodsTableSchedule_Refresh;
end;
procedure TpdspTableScheduleForm.adodsTableSchedule_Refresh;
var I: Integer;F: TField;
begin
with adodsTableSchedule do
begin
Close; !!!!!!!!!!!ВОТ ЗДЕСЬ ДОЛГО ВИСИТ И ВЫЛЕТАЕТ С ОПИСАННОЙ ОШИБКОЙ
CommandText := adodsTableScheduleMakeSQLText;
Open;
F := FindField("id_flight"); if F <> nil then F.Visible := False;
F := FindField("id_BackFlight"); if F <> nil then F.Visible := False;
for I := 0 to FieldCount - 1 do
begin
if Fields[I].DataType in [ftDate, ftDateTime] then (Fields[I] as TDateTimeField).DisplayFormat := GetLocaleStr(GetThreadLocale, LOCALE_SSHORTDATE, "dd.mm.yyyy");
if Fields[I].DisplayLabel[1] = "_" then Fields[I].DisplayLabel := Copy(Fields[I].DisplayLabel, 2, Length(Fields[I].DisplayLabel));
end;
end;
end;
function TpdspTableScheduleForm.adodsTableScheduleMakeSQLText: String;
var I, AirportCount: Integer; adods: TADODataSet;
begin
adods := TADODataSet.Create(Self);
...........
Сначало не понял в чем ошибка
убрал в процедуре adodsTableSchedule_Refresh; строку close;
дельфи стал ругаться в adodsTableScheduleMakeSQLText
на Create вот и пойми теперь в чем глюк.... больше вроде ничего не вызываю нигде
← →
Навичек (2003-04-30 10:13) [13]Нда... видать не побороть
← →
Babay © (2003-05-05 07:37) [14]если ошибка происходит сразу после запуска проги (создании/появлении окна) то
просто поставь для adodsTableSchedule в инспекторе
Active = false
Судя по всему у тебя он стоит как включенный при запуске проги он коннектится а в это время срабатывает
with adodsTableSchedule do
begin
Close; !!!!!!!!!!!ВОТ ЗДЕСЬ ДОЛГО ВИСИТ И ВЫЛЕТАЕТ С ОПИСАННОЙ ОШИБКОЙ
вот и получается та ошибка.
Причем тогда здесь вот это ?
-> "var adods: TADODataSet;
->begin
-> adods := TADODataSet.Create(Self);
->при выполнении вылетает с ошибкой "
Страницы: 1 вся ветка
Текущий архив: 2003.05.22;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.016 c