ايران ويج

نسخه‌ی کامل: استفاده از تابع REPLACE برای تهیه کوئری
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با سلام خدمت دوستان عزیز

من می خوام از یک جدولی تو اکسس یک کوئری بگیرم با دستور زیر
کد:
SELECT REPLACE(A1,'1','') FROM DB1.TABLE1;
ولی خطا می ده که این تابع تعریف نشده REPLACE رو می گم
در ضمن من با ADODBکار میکنم
در ضمن همین دستور تو خود اکسس جواب میده.

راهی داره ؟Question
کسی نمی خواد راهنمایی بکنه ؟
نمیدونیید میشه کاری کرد یا نه ؟
حامد جان سلام
من زیاد سر رشته ای توی دیتابیس ندارم ولی تا اونجا که گشتم ، دیدم افرادی که با مشکل مشابه شما مواجه بودن نتونستن مشکلشون رو حلش کنن . دلایلی که من دیدم هیچ کدوم منطقی نبودن . یکی گفته بود توی Access نمیشه از این توابع استفاده کرد و یکی دیگه گفته بود زبان SQL در Access استاندارد نیست و ..... من خودم دلیلش رو مشکل توی درایور OLEDB و نحوه برخورد اون با تابع Replace میبینم . شاید هم ناسازگاری خود VB باشه ! فقط گفته باشم این تابع یک تابع استاندارد در زبان SQL هست و فقط تابع VB نیست ! برای همینه که توی خود Access کار میکنه . حالا این وسط و در هنگام ارتباط VB با Access چه اتفاقی میافته نمیدونم البته شاید وجود تابعی با نام مشابه در VB این مشکل رو ایجاد می کنه ! هر چی به ذهنم میرسید همین بود . لینک پایین رو هم ببین :

http://www.codeguru.com/forum/printthrea...9505&pp=50

راه حلی که ارائه کردند استفاده از همون تکنیک Loop هستش که در واقع میشه یکی یکی Replace کردن حرف مورد نظر در هر سطر و در فیلد مربوطه !
متشکرم ممد جان

یعنی نمیشه از این تابع استفاده کرد؟ عجیب هست!
hamed_Arfaee نوشته است:متشکرم ممد جان

یعنی نمیشه از این تابع استفاده کرد؟ عجیب هست!

آره خیلی عجیبه ولی ظاهرا که نشده و این خارجی ها هم نتونستن کاریش بکنن !
ای آقا اونا که اکثرشون پرت بودن
یارو داشته راجع به ریپلیس سوال می پرسیده اونا را جع به trimبهش آموزش میدادن اکثرا هم همون سوال رو بازش کرده بودن تا اینکه جواب بدن یک جواب درست و حسابی توشون نبود اگر هم بود من ندیدم چند تا راه حل گفتن ولی خوب اگه بحث سرعت در میون نبود که با یک حلقه تو خود ویبی تمام مشکلات حل میشه
توی Expert exchange هم نتونسته بودن ! راستی بهتر نیست از یک stored procedure استفاده کنی جای اینکه از VB استفاده کنی ؟؟
Mamad2003 نوشته است:توی Expert exchange هم نتونسته بودن ! راستی بهتر نیست از یک stored procedure استفاده کنی جای اینکه از VB استفاده کنی ؟؟
میشه یکم درموردش توضیح بدی At
آقا ممد نمی خواهی توضیح بدی تا من یکم اطلاعاتم بره بالا ؟
حامد جان سلام

من گفتم که زیاد توی کار دیتابیس نیستم ولی خوب میتونم توضیح بدم واست . stored procedure که ترجمه اش میشه پروسه ذخیره شده در واقع به مجموعه ای از دستورات SQL گفته میشه که داخل فایل خود دیتابیس ذخیره میشه و شما هر وقت نیاز بهش داری اونها مثل تابع صدا میزنی .
مثل این میمونه که شما بجای اینکه دستور SQL رو توی برنامه بنویسی و مثلا با کمک ADO از دیتابیس query بگیری بجاش اون stored procedure که توی خود دیتابیس هست رو صدا می زنی و ازش میخوای که همون کار رو واست انجام بده . خیلی راحت هم جواب رو بهت برگردونه . جالب هست که بدونی حتی دقیقا مثل توابع قابلیت دریافت آرگومان هم دارن .
حالا فایده اش چیه ؟ معلومه ! چون توی خود دیتابیس ذخیره شده بسیاری از اوقات مثلا در زمانهایی که دیتابیست روی یه سرور دیگست ( مثل برنامه نویسی وب ) با سرعت و کارایی خیلی بیشتری میتونی از دیتابیست Query بگیری !
و .... خب حالا که شما میگی این دستور توی وی بی کار نمیکنه بهتره اونو بصورت یک stored procedure توی فایل خود دیتابیس ذخیره کنی و بعد از توی وی بی صداش بزنی و بخوای که همون عمل Replace رو واست توی خود Access انجام بده . اینم بگم که واژه stored procedure مربوط به SQL Server هست . توی Access این stored procedure ها با نام Queries معروف هستند .

راه درست کردنش آسونه ! اگه دیدی کارت رو ممکنه راه بندازه برات توضیح میدم . متاسفانه الان خودم رو کامپیوترم Access ندارم وگرنه چک می کردم واست .
متشکرم ممد جان
فهمیدم امتحان هم کردم ولی نشد
باز هم همان خطا
تابع تعریف نشده
مثل اینکه راه دیگه ای نیست!
صفحه‌ها: 1 2