Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];

Вниз

Работа с ADO или ODBC без использования объектов(!)   Найти похожие ветки 

 
RAA   (2002-12-12 15:08) [0]

У меня есть прогруммулька вида service её размер сейчас получился 18кб....если работать через объект TADOQuery то
Во первых размер проги сразу увеличиваеться на 250 кило((((
А во вторых она у меня просто нивкакую нихочет проходить процедуру MainADO:=TADOQuery.create(nil);

Помогите....конечно хотелось бы не использовать модуль ADODB а сделать всё ручками по новому(!))))


 
asmith   (2002-12-12 16:57) [1]

Я это проходил, нужно было в сервисе работать с ADO и не хотелось, чтобы написанный без VCL сервис сильно раздулся. Импортировал биб-ку типов ADO и работал напрямую с интерфейсами примерно так (обработка ошибок опущена для компактности):
var
szConnStr : string;
aConnection : Connection;
Data : Recordset;
szQueryString : string;
...
CoInitialize(nil); // это обязательно-без этого видимо твоя TADOQuery не работала
aConnection := CoConnection.Create();
szConnStr := GetConnectionString();
OleVariant(aConnection).Open(szConnection);
Data := CoRecordset.Create();
Data.Set_ActiveConnection(aConnection);
Data.CursorLocation := adUseClient;
szQueryString := "select * from SomeTable";
Data.Open(szQueryString, szConnection, adOpenKeyset, adLockBatchOptimistic, adCmdText);
// using data here
Data.Close();
Data := nil;
aConnection := nil;
CoUninitialize();
...
Если размер покажется великоватым (не будет 250 к, но все же), можно руками вычистить модуль импорта биб-ки типа от вещей, которые не будут использоваться), у меня после этого сервисы с довольно развитой функциональностью весили порядка 70 К.


 
RAA   (2002-12-12 17:44) [2]

aConnection : Connection;

А :Connection это из какого модуля?

asmith пасибо тебе уже более понятно куда двигаться(!)))


 
RAA   (2002-12-12 17:59) [3]

Я даже подключил модуль adodb целиком но всё равно он так и не нашёл CoInitialize();

Если не сложно опиши поподробнее(!) плз(!)


 
sniknik   (2002-12-12 18:09) [4]

CoInitialize(); в ActiveX

а для остального сделай импорт ADO, меню Component-> Import ActiveX Control. по моему речь об этом.

а вот модуль adodb и другие тебе не нужен без лишних килобайт не обойдется. :о)


 
RAA   (2002-12-12 19:24) [5]

Да с модулями adodb и activex TADOQuery заработал но и размер практически с никакой структурой весит 440кило(!)))

asmith - плз поподробней распиши что и как надо сделать(!)))



 
asmith   (2002-12-12 19:48) [6]

sniknik почти прав - Project->Import Type Library->выбираешь Microsoft ActiveX Data Objects 2.X Library->выключаешь внизу Generate Component Wrapper->жмешь Create Unit->Delphi сгенерит ADODB_TLB.PAS - юзаем для работы с ADO только ее и больши ничего! Включаем ее в проект и далее как ранее описывалось. И все эти Connection, Recordset и все остальное - описано в ней. Кстати, вместо этого подхода (раннего связывания) можешь вместо Connection, Recordset написать просто OleVariant и заюзать позднее связывание примерно так:
var
aConnection : OleVariant;
Data : OleVariant;
...
CoInitialize(nil);
aConnection := CreateOleObject("ADODB.Connection");
...
Data := CreateOleObject("ADODB.Recordset");
и так далее.


 
RAA   (2002-12-12 20:01) [7]

Пасибо Вам(!)
Завтра опробую(!)))


 
RAA   (2002-12-12 21:50) [8]

asmith У меня как-то странно без всякой инфростуктуры размер проги разросся до 263 кило(((((((


 
asmith   (2002-12-13 17:03) [9]

Проверь, не остались ли где ссылки на неиспользуемые модули (uses). Можно также включить генерацию линкером Мар-файла и поразглядывать его на предмет наличия ненужных модулей. А кроме того, стоит соптимизировать (в смысле немного порезать) ADODB_TLB.PAS, если нет времени и желания это делать - могу прислать его мылом.


 
RAA   (2002-12-13 21:35) [10]

asmith >> Друг будь любезен кинь на мыло golovin@samaraenergo.ru
У меня действительно сейчас с временем просто бяда...сессия однако.......



Страницы: 1 вся ветка

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

Наверх




Память: 0.46 MB
Время: 0.007 c
1-14991
lefan
2002-12-24 09:59
2003.01.06
except


3-14954
Павка
2002-12-15 05:19
2003.01.06
Ссумирование


14-15216
vopros
2002-12-18 11:04
2003.01.06
При отладке программ перестало показывать значение


14-15308
Ketmar
2002-12-17 16:26
2003.01.06
господа, никто не встречал плугина к фару, чтобы *.SQX-архивы...


1-15020
werr
2002-12-24 14:34
2003.01.06
exe перезаписывает сам себя?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский