امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 3
  • 1
  • 2
  • 3
  • 4
  • 5
عدم اجرای بعضی ار توابع در sql
نویسنده پیام
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #1
عدم اجرای بعضی ار توابع در sql
باعرض سلام و خسته نباشید خدمت دوستان عزیز

من از یک کامپاننت لیست برای اتصال به اکسس استفاده میکنم جهت اتصال با sql مشکل نداره استفاده از توابع vb هم مثل تابع ()date و غیرو هم مشکلی نیست قفط توابع ایجاد شده خودمان را مثل تاریخ شمسی که در محیط vb راحتی انجام میشه با دستورات sql خطا میده البته هر تابعی که در ماجول تعریف شده باشه خطا میده
آیا امکانش هست توابع ایجاد شده را مثل توابع vb عمل کنه ؟

با تشکر منتطر پاسخ دوستان
۲۴-بهمن-۱۳۹۰, ۱۴:۱۴:۲۸
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #2
RE: عدم اجرای بعضی ار توابع در sql
سوالت زیاد واضح نیست لطفا بیشتر توضیح بده .

۲۴-بهمن-۱۳۹۰, ۱۵:۳۶:۵۵
وب سایت ارسال‌ها
پاسخ
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #3
RE: عدم اجرای بعضی ار توابع در sql
[/align]با تشکر از پاسخگویی شما

من از کامپاننت PowerList استفاده می کنم که در بعضی ازموارد برای اتصال به بانک اطلاعاتی (اکسس)نیاز دارم از دستورات sql برای ارتباط با کامپاننت PowerList استفاده نمایم .
درحالت اتصال با دستور سادهsql مشکلی نیست :
PowerList1.Query = "select ID, Field1, Field2,Field3 FROM Table1"
ولی در صورت تعیین یکی از توابع ایجاد شده بغییر از توابع خود vb با خطا مواجه می شود. مانند :

PowerList1.Query = "select ID, Field1, Field2,Field3 ,Shamsi() AS Field4 FROM Table1"

البته اینجا جهت Field4 یا ستون چهارم برای مثال از تابع ()Shamsi استفاده کردم . یعنی هر تابعی که ما در vb تعریف نماییم با خطا مواجه میشود و لی برعکس با توابع کاربردی خود vb مشکلی ندارد نظیر تابع ()date یا ()time و هر تابع دیگر vb
نمی دونم آیا توابع وی بی مانند ()date یا ()time در لیست توابع کتابخانه ای وی بی هست و این توابعی که ایجاد کردیم در لیست این توابع کتابخانهای قرار ندارد . فکر کردم شاید بهمین دلیل باشد که با توابع تعریف شده vb مشکلی ندارد و با توابع ایجاد شده توسط ما با مشکل مواجه می شود

خواهش من این است درصورت امکان راهنماییم کنید .
با تشکر فراوان
[quote='sahand87' pid='164963' dateline='1329136035']
با تشکر از پاسخگویی شما



(آخرین ویرایش در این ارسال: ۲۴-بهمن-۱۳۹۰, ۱۷:۱۵:۰۸، توسط sahand87.)
۲۴-بهمن-۱۳۹۰, ۱۶:۵۷:۱۵
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #4
RE: عدم اجرای بعضی ار توابع در sql
دوست خوبم

زمانی که شما می خواهید از SQL ( یا کامپوننت های مربوط به اون ) استفاده کنید باید از دستورات SQL استفاده

کنید. این دستورات خاص خود SQL هستند و هیچ ارتباطی به زبان برنامه نویسی شما ندارند اما در خیلی از موارد

از نظر املایی شبیه به VB هستند مثل Date و ... که باعث اشتباه شما شده.

برای ادامه کار به شما پیشنهاد می کنم اول مقالات آموزشی که داخل فروم قرار دارند رو مطالعه کنید.

آموزش کار با SQL

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

یک فیلد از نوع Char بریزید یا اینکه پس از خواندن اطلاعات اونها رو با توابع و ماژول هایی که دارید به مقدار

دلخواه تبدیل کنید.

(آخرین ویرایش در این ارسال: ۲۵-بهمن-۱۳۹۰, ۱۱:۲۱:۵۳، توسط Di Di.)
۲۵-بهمن-۱۳۹۰, ۱۱:۲۱:۲۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sahand87
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #5
RE: عدم اجرای بعضی ار توابع در sql
ممنون از لطف شما
چشم حتما به توصیه دوستانه شما عمل می کنم (آموزش کار با SQL):

ولی متاسفانه منظور شما را خوب متوجه نشدم. یعنی شما می فرمائید برای استفاده از اس کیو ال در vb ما نمی تونیم از تابع غیر از اس کیو ال استفاده کنیم
البته من تازه با وبی دارم کار می کنم ولی با اکسس آشنایم بد نیست و بارها با اس کیوال از توابع ساخته شده استفاده کردم از جمله Encrypt /DeEncrypt کردن جداول با دستور UPDATE اس کیو ال حتی با بانکهای خارجی لینک شده و مشکلی هم نداشتم ادیتور vba اکسس هم تقریبا 90 درصدهمان ادیتور vb است و فکر کنم نسخه کاربردی sql هر دو هم یکی باشه.
یعنی این قابلیت vba اکسس در vb6 نیست ! ؟
۲۵-بهمن-۱۳۹۰, ۲۰:۵۹:۲۰
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #6
RE: عدم اجرای بعضی ار توابع در sql
نقل قول: یعنی شما می فرمائید برای استفاده از اس کیو ال در vb ما نمی تونیم از تابع غیر از اس کیو ال
استفاده کنیم
دقیقا منظورم همینه.

در واقع اکثر برنامه هایی که دارای زبان داخلی هستند یا زمانی که می خوان الگوریتم یک مسئله رو

بنویسین معمولا از دستورات و منطق VB استفاده می شه. چون دستورات اون بسیار ساده و نزدیک به

زبان محاوره ای است و فهم اون بسیار ساده تر از هر زبان دیگه ای هست.

شما اگر زبان داخلی اتوکد، 3DMax , Maya و .... رو هم مطالعه کنید حتما این شباهت ها رو داخل اونها

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

تا حدودی شبیه به هم هست.

بنابراین داخل خود SQL هم امکاناتی برای تعریف توابع توسط کاربر در نظر گرفته شده و می تونید با تبدیل

توابعی که در VB نوشتید ، از اونها در SQL هم استفاده کنید.

برای مثال من برای محاسبه زمان اضافه کار و ... در یکی از برنامه ها مجبور شدم رشته رو به ساعت تبدیل

کنم و هیچ راهی هم برای تعریف مجدد فیلدها از نوع Time یا تعریف تابع داخل SQL نداشتم بنابراین داخل

همون دستور SELECT توابعم رو تعریف کردم.

کد php:
SELECT     e.[no] AS enoe.EmptypeNoe.ITINoe.family ' ' e.name AS NAMEe.name ' ' e.family AS fNAME,
O.*, drt.EZFdrt2.TJTimedrt3.KasrTimedrt4.OvrTime, CASE WHEN drt2.TJTime <> '0:0 ' THEN CONVERT(nvarchar
 
, (1320 - (CAST(REPLACE(RIGHT(drt2.TJTime3), ':''') AS int) + CAST(REPLACE(LEFT(drt2.TJTime2), ':''') AS int)
 * 
60)) / 60) + ':' CONVERT(nvarchar, { fn MOD(1320 - (CAST(REPLACE(RIGHT(drt2.TJTime3), ':',   '') AS int)
 + 
CAST(REPLACE(LEFT(drt2.TJTime2), ':''') AS int) * 60), 60) }) ELSE '0:0' END AS TSub22CONVERT(nvarchar
 ((
CAST(REPLACE(RIGHT(drt4.OvrTime3), ':''') AS int) + CAST(REPLACE(LEFT(drt4.OvrTime2), ':''') AS int) * 60)
 - (
CAST(REPLACE(RIGHT(drt.EZF3), ':''') AS int) + CAST(REPLACE(LEFT(drt.EZF2), ':''') AS int) * 60)) / 60) + ':' 
CONVERT(nvarchar, { fn MOD((CAST(REPLACE(RIGHT(drt4.OvrTime3), ':''') AS int) + CAST(REPLACE(LEFT
 
(drt4.OvrTime2), ':''') AS int) * 60) - (CAST(REPLACE(RIGHT(drt.EZF3), ':''') AS int
 + 
CAST(REPLACE(LEFT(drt.EZF2), ':''') AS int) * 60), 60) }) AS TOvrDataNahar.NaharDataNahar2.Nahar2 
به تعریف متغییرها ، تبدیل و ذخیره اطلاعات رشته ای به ساعت و سپس و جمع و

تفریق اونها و ذخیره مجددشون به صورت رشته توجه کن.

مثل این کار رو می تونی برای تابع تاریخ شمسی هم انجام بدی البته به نظرم ساده تره که این کار رو نکنی

و بعد از خوندن اطلاعات داخل خود وی بی اون رو تبدیل و سپس نمایش بدی.



(آخرین ویرایش در این ارسال: ۲۶-بهمن-۱۳۹۰, ۱۱:۵۴:۴۲، توسط Di Di.)
۲۶-بهمن-۱۳۹۰, ۱۱:۳۶:۱۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sahand87
sahand87 آفلاین
تازه وارد

ارسال‌ها: 16
موضوع‌ها: 7
تاریخ عضویت: بهمن ۱۳۹۰

تشکرها : 10
( 1 تشکر در 1 ارسال )
ارسال: #7
RE: عدم اجرای بعضی ار توابع در sql

سلام
با تشکر فراوان

دقیقا فرمایش شما درسته من هم همین کار را کردم با فراخوانی از sql داخل vb عملیات تبدیل را انجام دادم که شکر خدا مشکل حل شد .
۲۶-بهمن-۱۳۹۰, ۱۴:۲۵:۱۲
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ذخیره کردن نتیجه اجرای کد به صورت رشته alefpe 1 2,740 ۱۰-خرداد-۱۳۹۴, ۱۰:۲۰:۲۲
آخرین ارسال: lord_viper
  اجرای خودکار برنامه در یک زمان خاص iman_yakoza 22 24,285 ۰۷-اسفند-۱۳۹۳, ۱۷:۰۶:۵۹
آخرین ارسال: Ghoghnus
  [سوال] اجرای کد با کلیک روی لینک نوشته در اکسل eppagh 0 2,334 ۰۳-بهمن-۱۳۹۳, ۱۶:۱۹:۰۴
آخرین ارسال: eppagh
Question [سوال] اجرای فرم با button روی شیت اکسل در VBA eppagh 6 10,897 ۰۱-مرداد-۱۳۹۳, ۱۵:۲۴:۳۸
آخرین ارسال: eppagh
  نیاز به دستور برای اجرای چکر برنامه Proxifier از طریق cmd hamidsystem 4 4,085 ۰۸-فروردین-۱۳۹۳, ۱۶:۱۳:۰۱
آخرین ارسال: hamidsystem
  راهنمایی برای اجرای دستورات پشت سر هم Rain_Saeid 2 3,507 ۱۰-خرداد-۱۳۹۲, ۱۲:۴۰:۴۲
آخرین ارسال: Rain_Saeid
  نحوه اطلاع از اجرای یک برنامه در ویندوز ترانسپورتر 18 12,176 ۲۲-آبان-۱۳۹۱, ۱۰:۰۲:۳۸
آخرین ارسال: lord_viper
Question [سوال] چگونگي استفاده از توابع رشته اي در تكست باكس با حالت multiline PRO 4 4,524 ۱۵-شهریور-۱۳۹۱, ۰۱:۰۳:۳۳
آخرین ارسال: PRO
  [سوال] رسم shape هنگام اجرای برنامه behzady 1 2,743 ۰۳-خرداد-۱۳۹۱, ۱۰:۱۰:۳۰
آخرین ارسال: Ghoghnus
  مشکل با توابع API مرد یخی 1 2,598 ۲۱-آذر-۱۳۹۰, ۱۲:۳۳:۴۰
آخرین ارسال: Payman62

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS