ورود

View Full Version : دیتا و اینستال شیلد



mahboobeh
چهارشنبه 16 آذر 1384, 19:08 عصر
من توی برنامه م از آبجکت دیتا برای ارتباط با بانکم استفاده کردم ودرست هم کار میکنه اما وقتی با اینستال شیلد واسش ستاپ می سازم ارتباط های دیتا رو اصلا نمی شناسه و برنامه بدون اونها نصب میشه یعنی مثلا کامبو هام خالی هستند یا اطلاعات رو از بانک نمی تونه بخونه میدونید باید چیکار کنم که درست بشه ؟

اَرژنگ
چهارشنبه 16 آذر 1384, 19:13 عصر
بعد از اینکه برنامه‌اتان را با اینستال شیلد نصب کردید ، امتهان کنید که چه خصوصیاتی را برایه ارتبات با داتابیس کپی نکرده.

mahboobeh
چهارشنبه 16 آذر 1384, 20:10 عصر
یعنی چی؟
ارتباط برقرار نمیشه دیگه به بانک دسترسی نداره مگه چه خصوصیتی برای ارتباط با دیتا بیس هست ؟
وقتی برنامه رو اجرا می کنم میکه:
{class no register looking for object with clsid { 00000010-0000-0010-8000-00aa006d2ea4

ehsan_ansaripoor
پنج شنبه 17 آذر 1384, 00:18 صبح
دوست عزیز شاید آدرس بانکت را داخل درایو خاصی دادی که باید برنامت داخل اون درایو باشه تا بشناسه

mahboobeh
پنج شنبه 17 آذر 1384, 11:12 صبح
نه آدرسی که فلیل ستاپ نصب میشه داخل پروگرم فایله درایو خاصی رو مشخص نکردم .

niloufar
پنج شنبه 17 آذر 1384, 12:00 عصر
سلام
mahboobeh احتمالا شما از کنترل DAO DC (همون کنترلی که به طور پیش فرض در کنترلها به نام DATA است) استفاده کرده اید. این کنترل مشکلات زیادی دارد (مهمتر از همه ست کردن در runtime است) شما باید اولا سراغ ADO بروید (ساده آن ADO DC است) و ثانیا در هر حال باید ارتباط با دیتابیس را در runtime ست کنید و به جای اینکه مسیر بدهید از چیزهایی استفاده بکنید که وابسته به مسیر نباشند (مثل App.path) (اتفاقا اصل مشکل شما هم احتمالا همین است که آدرس بانک را به صورت واقعی و ویندوزی می نویسید و وقتی ستاپ آن را میسازید و در جایی غیر از مسیر سورس خود نصب میشود (خصوصا در کامپیوتر های دیگر) دچار مشکل میشوید. لذا بهتر است یه کم در مورد App.path اطلاعات کسب کنید)
خلاصه تو این مایه ها...

PalizeSoftware
پنج شنبه 17 آذر 1384, 15:29 عصر
یعنی چی؟
ارتباط برقرار نمیشه دیگه به بانک دسترسی نداره مگه چه خصوصیتی برای ارتباط با دیتا بیس هست ؟
وقتی برنامه رو اجرا می کنم میکه:
{class no register looking for object with clsid { 00000010-0000-0010-8000-00aa006d2ea4

اگه دقت کنید می‌بینید که این پیام هیچ ربطی به مسیر بانک و از این حرفها نداره. به احتمال زیاد مربوطه به نصب نشدن یه کامپوننت، DLL یا امثالهم هست. سعی کنید با نصب کردن کامپوننت MDAC_TYP این قضیه رو امتحان کنید.
متاسفانه اگر شما در همه رویدادها (یا حتی رویدادهای حیاتی) کدی به منظور هندل کردن خطاها قرار می‌دادید، الان دقیق‌تر می‌تونستید بفهمید که خطا در چه ناحیه‌ای اتفاق افتاده.
شاید وقت‌گیر باشه ولی قرار دادن دستورات کنترل خطا آنقدر ارزشمند هست که نمیشه ازش چشم‌پوشی کرد. توصیه می‌کنم اینکار رو حتما انجام بدید.
اگه بیشتر جستجو کنید نرم‌افزارهایی رو بصورت Add-in‌ می‌تونید پیدا کنید که این قبیل کد‌ها رو بدون دخالت برنامه‌نویس در کلیه روال‌ها قرار بده.
There is more to see than can ever be see.

PalizeSoftware
پنج شنبه 17 آذر 1384, 15:41 عصر
همانطور که حدس می‌زدم بود.
اگه شما روی سیستمی که این پروژه بدون مشکل اجرا میشه رشته ID مربوطه رو در RegEdit جستجو کنید متوجه می‌شید که مربوطه به فایل DAO350.DLL هست که رجیستر نشده. این فایل Provider بانک شما رو در خودش داره. به احتمال کمی تا قسمتی زیاد، بعد از نصب این فایل هم مشکلی از نواحیه دیگه متوجه شما خواهد بود پس خیال خودتون رو راحت کنی و فایل MDAC_TYP رو ضمیمه پکیج خودتون کنید تا همه چی به خیر و خوشی تمام بشه.
برای رجیستر کردن DLL هم از دستور RegSvr32 استفاده کنید.
Microsoft Data Access Component Typical

mahboobeh
پنج شنبه 24 آذر 1384, 17:10 عصر
خیلی ازتون ممنونم من کلی به اطلاعاتم اضافه شد البته ببخشید که اینقدر دیر تشکر کردم .
من MDAC 2.5 sp2 رو در قسمت merge module اینستال شید انتخاب کردم اما بازم برنامه روی بعضی سیستم ها اجرا نمیشه وباز همون پیغام رو میده روی بعضی سیستم ها هم بدون اشکال اجرا میشه ، به هر حال ممنون از راهنماییتون .
از توضیحاتی که دادین 2تا سئوال داشتم :
این کدهایی که گفتین برای هندل کردن باید قرار داد کدوما هستن؟منظورتون همون تابع()Err ؟

در مورد رجیستر کردن توی یه تایپیک دیگه گفته بودید که ازregsvr32 چطور استفاده کنم اما توی اینستال شید واسه یه سیستم دیگه چطوری باید اینکار رو بکنم؟

PalizeSoftware
پنج شنبه 24 آذر 1384, 18:01 عصر
این کدهایی که گفتین برای هندل کردن باید قرار داد کدوما هستن؟منظورتون همون تابع()Err ؟
اگر تحت نسخه 6 کار می‌کنید که استفاده از On Error Goto‌ و شئ Err‌ هست که اشاره کردید و اگر تحت NET. که خب با دستورات Try Catch می‌تونید اینکار رو بکنید.

در مورد رجیستر کردن توی یه تایپیک دیگه گفته بودید که ازregsvr32 چطور استفاده کنم اما توی اینستال شید واسه یه سیستم دیگه چطوری باید اینکار رو بکنم؟
دوست عزیز همه برنامه‌های ست‌آپ ساز اینکار رو بطور ذاتی انجام می‌دهند. استفاده از regsvr32 بطور دستی اینکار رو انجام میده.

راستی سعی کنید از MDAC 2.8 کار کنید.(اگه دم دست دارید) که باید در پروژه‌ هم کلاس 2.8 رو انتخاب کنید. به احتمال زیاد مشکل حل میشه.

mahboobeh
پنج شنبه 24 آذر 1384, 18:24 عصر
ممنون
MDAC 2.8 جزء لیست merge module ها نیست چطوری میتونم اضافه کنم

PalizeSoftware
پنج شنبه 24 آذر 1384, 19:07 عصر
دستی نصب کنید بعد اگه مشکل حل شد، بصورت shell فایل MDAC رو اجرا کنید.