Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблемы с ADO2.5 [D4, mdb]


a_k_v ©   (2002-01-29 09:00:00) 

Вот пытаюсь работать с 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;

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


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

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


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

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

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


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

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


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

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


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

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


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

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


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

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


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

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

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

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


Fay   (2002-01-29 12:01:00) [9]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо