PDA

View Full Version : سوال: کامپایل برنامه در ویندوز 7 sp1



hnarmak
پنج شنبه 25 خرداد 1391, 14:47 عصر
با سلام واحترام
من برنامه ای نوشته ام که در ویندوز 7 هیچ مشکلی نداردو زمانی که کامپایل می شود به درستی اجرا می شود ولی همان فایل اجرایی در ویندوز xp با خطایی رو برو می شوم .
لطفا راهنمایی بفرمایید.
تصویر خطا در پیوست ...
88242

M.T.P
پنج شنبه 25 خرداد 1391, 14:59 عصر
پروژه های مبتنی بر ADODB را در Windows 7 SP1 کامپایل نکنید!!! (http://barnamenevis.org/showthread.php?288361-%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D9%87%D8%A7%DB%8C-%D9%85%D8%A8%D8%AA%D9%86%DB%8C-%D8%A8%D8%B1-ADODB-%D8%B1%D8%A7-%D8%AF%D8%B1-Windows-7-SP1-%DA%A9%D8%A7%D9%85%D9%BE%D8%A7%DB%8C%D9%84-%D9%86%DA%A9%D9%86%DB%8C%D8%AF!!!)

برای رفع مشکلتون می تونید اشیایی کلاس های کتابخانه ADODB رو بصورت داینامیک بسازید.

یعنی:

Dim cnn
Set cnn = CreateObject("adodb.connection")

اینطوری رفرنس ثابتی برای پروژتون وجود نداره و ویندوز آخرین ورژن از کتابخانه مذکور رو در نظر می گیره.

aliman12
پنج شنبه 25 خرداد 1391, 17:40 عصر
چطوری میشه به وسیله adodb به بانک متصل شد؟
آیا adodb کامپوننت است یا dll?

hnarmak
پنج شنبه 25 خرداد 1391, 20:37 عصر
با سلام و احترام
بسیار از پاسخ شما متشکرم
در صورت امکان یک Sample و یا توضیحات بیشتری در خصوص طریقه استفاده از کد معرفی نموده ارائه بفرمایید.
پیشاپیش از بذل توجه جنابعالی کمال تشکر را دارم

M.T.P
جمعه 26 خرداد 1391, 11:34 صبح
با سلام و احترام
بسیار از پاسخ شما متشکرم
در صورت امکان یک Sample و یا توضیحات بیشتری در خصوص طریقه استفاده از کد معرفی نموده ارائه بفرمایید.
پیشاپیش از بذل توجه جنابعالی کمال تشکر را دارم

سلام

ببینید منظور اینه که به عنوان مثال اگه شی ء اتصال یا همون Connection رو اینطوری می سازید:


Dim cnn As ADODB.Connection

Set cnn = New ADODB.Connection

خب این روش ملزم به تیک خوردن رفرنس Microsoft Activex Data Object هست که دارای ورژن های مختلف هست.
مشکل دقیقا اینجاست که به دلایل ذکر شده در ویندوز های مختلف برنامه دچار مشکل میشه.

اما با روشی که در پست قبل نوشته شد یعنی:


Dim cnn
Set cnn = CreateObject("adodb.connection")

انتخاب کلاس مورد نظر رو به ویندوز میسپارید و ویندوز برای شما آخرین ورژن از کتابخانه ADODB رو در نظر میگیره.

برای تست این موضوع می تونید کد زیر رو در دو ویندوز XP و 7 اجرا و نتیجه رو ببینید.


Dim cnn As Object
Set cnn = CreateObject("adodb.connection")
MsgBox cnn.Version

کد بالا در ویندوز XP نتیجه اش نسخه 2.8 و در ویندوز سون نسخه 6.1 خواهد بود.