ورود

View Full Version : استفاده از ADOConnection در داخل Service



Kamyar.Kimiyabeigi
سه شنبه 15 فروردین 1385, 11:09 صبح
من یک سرویس نوشتم که داخل اون از ADOConnection استفاده کردم منتها مشکل من اینجاست که وقتی به خط ADOConnection.connected := True میرسه سرویس stop میشه؟؟؟؟
لطفا" اگر دوستان می تونن کمک کنن

Kamyar.Kimiyabeigi
سه شنبه 15 فروردین 1385, 13:26 عصر
اینم source مربوط به سرویسم و پیغام خطام

hr110
سه شنبه 15 فروردین 1385, 13:46 عصر
این میتونه به چند دلیل رخ بده، که فکر میکنم مهمترینش وجود یک خطا در زمان اتصال به DBMS باشه.
ضمناً شما از datamodule استفاده نکرده اید!؟؟

Kamyar.Kimiyabeigi
سه شنبه 15 فروردین 1385, 14:10 عصر
این میتونه به چند دلیل رخ بده، که فکر میکنم مهمترینش وجود یک خطا در زمان اتصال به DBMS باشه.
ضمناً شما از datamodule استفاده نکرده اید!؟؟
واقعا" دستتون درد نکنه مشکلم در عدم استفاده از Data module بود ممنون :تشویق:
1 سوال دیگه چه جوری میشه در سرویس به registry دسترسی داشت البته قبلا" جستجو کردم ولی مشکلم حل نشد...

hr110
چهارشنبه 16 فروردین 1385, 09:20 صبح
به عنوان مثال:



var
T : TRegistry;
begin
CoInitialize(nil);
with T do
begin
try
RootKey:=HKEY_LOCAL_MACHINE;
OpenKey('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlS et\Control\Keyboard ' +
'Layouts\00000429',true);
WriteString('Layout File','KBDFA.dll');
CloseKey;
finally
Free
end;
CoUninitialize;
end;

Kamyar.Kimiyabeigi
چهارشنبه 16 فروردین 1385, 09:57 صبح
hr110 عزیز واقعا" دستت درد نکنه از توجهت با این کد شما در داخل Datamodule به Registry دسترسی پیدا کردم و لی داخل Unit خود سرویس همچنان دسترسی ندارم من براتون سورسمو میزارم (در اصل من میخوام زمانی که کاربر سرویس را start کرد من کارهام شروع بشه که شامل خوندن اطلاعات از Registry جهت چک کردن قفل و وصل شدن به Database)
میشه بگین که این CoInitialize و CoUninitialize چه کاری انجام میدن؟؟؟
من تو help خوندم نوشته بود برای مقدار دهی COM Library هست و برای اینکه از OLE Library بخواین استفاده کنین باید قبلش این function رو صدا بزنین. حالا سوال من اینه که registry چه ارتباطی با COM & OLE داره؟؟؟
بازم از توجهتون ممنون

Kamyar.Kimiyabeigi
چهارشنبه 16 فروردین 1385, 13:53 عصر
hr110 عزیز مشکل "خواندن اطلاعات از رجیستری داخل سرویس" حل شد.
اشکال کار اینجا بود که من داشتم از شاخه HKEY_CURRENT_USER اطلاعات رو میخوندم و در واقع سرویس نمیتونه اطلاعات این شاخرو بخونه. حالا من اطلاعاتمو بر روی شاخه HKEY_LOCAL_MACHINE قرار دادم که مشکلم برطرف شد.
در نهایت بازم از توجه و زحماتتون ممنونم :تشویق: