Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];




Вниз

Проблемы с ADO2.5 


a_k_v   (2002-01-29 09:00) [0]

Вот пытаюсь работать с ADO 2.5, импортировал библиотеку типов, создал connection и recordSet, обрабатываю запросы по 500 записей
но встал перед проблемой при длительной работе проги она существенно начинает пожирать витруальную память, отсюда вопрос
как правильно работать с recordSet и connection?
я делаю вот так:

var // глобальные переменные модуля
conODBC: Connection;
adoRS: RecordSet;
...
begin // тело проблемной процедуры
strAccessConnect := "File name=" + sDNSRosar;
conODBC := CoConnection.Create;
conODBC.Open(strAccessConnect, "kill","smart",0);
strQuery := "SELECT * FROM [Beer parameters] WHERE
[Program number]=" + IntToStr(iProgram) + " AND
[Beer number]= " + IntToStr(iBeer) + " ORDER BY
[Step number] ASC";
adoRS := CoRecordset.Create;
adoRS.Open(strQuery, conODBC, adOpenStatic,
adLockReadOnly, adCmdText);
adoRS.MoveFirst;
While adoRS.EOF <> True do
begin
iStep := adoRS.Fields.Item[2].value;
For k := 0 To 11 do
begin
iCounterR := (iStep * 12) + k;
If adoRS.Fields.Item[k * 5 + 7].value = True Then
rRealValues[iCounterR] :=
adoRS.Fields.Item[k * 5 + 5].value;
end;
adoRS.MoveNext
end;
adoRS.Close;
adoRS := nil;
conODBC.Close;
conODBC := nil;
end;

Скажите в чем я не прав?



Fay   (2002-01-29 12:01) [1]

conODBC: Connection;
adoRS: RecordSet;
Кто такие Connection и Recordset?



Delirium   (2002-01-29 12:09) [2]

ОDBC никакого отношения к ADO-шному Connection не имеет,
тут важен единственный параметр - ConnectionString.
Для MDB он такой :

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\db1.mdb;Persist Security Info=False

Но я бы посоветовал, не пытаться изобретать велосипед с импортом типов, а поставить себе D6 - там всё есть и работает безглючно.



a_k_v   (2002-01-29 12:47) [3]

2Fay:
Connection и Recordset это CoClasses из библиотеки типов для ADO 2.5, которые предоставляют дают мне доступ к Access таблицам (прописано в dsn) через ODBC Microsoft Access Driver а я собственнно пытаюсь напрямую работать с mdb таблицами, не используя средства Delphi 5, 6 для работы с ADO и сторонние компоненты.



a_k_v   (2002-01-29 12:55) [4]

2Delirium
Я не думаю, что работа с ADO через имортированные интерфейсы
есть изобретение велосипеда, и что приведенный мной код намного сложнее того который я бы получил используя сторонние средства или средства D5, D6



Delirium   (2002-01-29 13:06) [5]

Просто в D5 и D6 уже проведён импорт, посторены дополнительные классы, проведено сведение с TDataSet. Вот собственно, а переписывать заново, хотя бы переобразование типов данных - скажешь не "велосипед"?



a_k_v   (2002-01-29 13:30) [6]

2Delirium
Просто периодически приходится писать и сопровождать программы
не только на Delphi поэтому я отталкиваюсь от средств предоставляемых Microsoft и пытаяюсь унифицировать собственные приемы прогоаммирования, а что касается средств D5 и D6 то если у меня ничего не выйдет, то обращусь к входящим в их состав исходникам или поставлю этих монстров, и посмотрю исчехнет ли проблемы в новой реализации.
а пока есть силы, время и пиво попробую покопать дальше



Delirium   (2002-01-29 13:52) [7]

Я думаю проще "копать", глядя на то, что уже сделано :)



andrucco   (2002-02-04 10:42) [8]

перекомпилил в D5 проблема вроде отпала, ни строчки кода не сменил.

Delphi - это полная ж..па, и сами Borlandы ур..ды.



Delirium   (2002-02-04 11:52) [9]

Кто-же тебя заставляет работать с Delphi, если всё так плохо? Переходи на VB :)




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.024 c
3-90445           Ser_Grey              2002-02-01 09:08  2002.02.28  
Вроде простой вопрос, а ответа никто не знает!


14-90640          Knight                2002-01-12 13:22  2002.02.28  
Глюки Винды не толькоменя наверное достали но и остальных пользователей Вин98...


1-90544           Serguar               2002-02-11 10:53  2002.02.28  
Каким образом можно перехватить сообщение от мыши, так как это делается для клавиатуры


4-90692           Ted                   2001-12-27 08:44  2002.02.28  
Отрубить клаву


6-90628           ShaH                  2001-12-04 08:58  2002.02.28  
Как узнать имя залогонившегося пользователя