PDA

View Full Version : سوال: کوئری های sql در دلفی



mahshid_glna
یک شنبه 07 مهر 1387, 14:55 عصر
من می خوام بدونم می شه از کوئری های sql در دلفی هم استفاده کرد؟یا باید واسه استفاده از کوئری تو دلفی باید کوئری رو داخل کد های دلفی بزاریم؟

حمیدرضاصادقیان
یک شنبه 07 مهر 1387, 15:50 عصر
سلام.شما به دوطریق میتوانید از دستورات sql داخل دلفی استفاده کنید. یکی اینکه تمامی دستورات خود را داخل اجزایی مثل Stored Procedure,View,Function قرار بدید و در دلفی با استفاده از ابزارهای Adotable,Adoquery,Adostoredproc اونها رو صدا بزنید.
یکی اینکه دستورات خود رو مستقیما داخل خود adoquery نوشته بعد اونو صدا بزنید.
به روش اول سرور ساید میگند که سرعتش هم بالاتره و خیلی بهتره.به روش دوم کلاینت ساید میگن.
نمونه ای از روش دوم


With adoquery1 do
Begin
sql.clear;
sql.add('select * from table1');
open;
End;

delphiprog3000
یک شنبه 07 مهر 1387, 20:06 عصر
در ادامه صحبت دوست عزیز این چند لینک هم میتونه به شما کمک کنه:

http://barnamenevis.org/forum/showthread.php?t=105786

http://barnamenevis.org/forum/showthread.php?t=104322

http://barnamenevis.org/forum/showthread.php?t=104378

http://barnamenevis.org/forum/showthread.php?t=84612

موفق باشید.......

mahshid_glna
دوشنبه 08 مهر 1387, 21:01 عصر
سلام ممنون از راهنماییتون .
اینکه گفتین ( تمامی دستورات خود را داخل اجزایی مثل Stored Procedure,View,Function قرار بدید و در دلفی با استفاده از ابزارهای Adotable,Adoquery,Adostoredproc اونها رو صدا بزنید. ) می شه بیشتر توضیح بدید .
من از Adoquery استفاده می کنم و بعد از properties گزینه SQL رو انتخاب می کنم و کوئری رو داخل پنجره string list editor می نویسم نمی دونم این روش درست هستش یا نه ؟

و اگه ممکنه یک منبع خوب معرفی کنید واسه استفاده از sql با دلفی چون من تازه کارم و قبلا با access کار می کردم.

Ali_M_K
سه شنبه 09 مهر 1387, 09:36 صبح
سلام ببخشید اما...میتونید از datasource و Query هم استفاده کنید. خیلی راحت تر و خیلی خیلی سریعترهبرای query.sql رشته sql رو تعریف میکنید و تمام.نه گرفتاری ها و خطاهای Ado رو داره و هم اینکهکدتون تقریبا 100% قابل حمل میشه. روی هر دیتابیسی.

kamrazm
جمعه 19 مهر 1387, 18:45 عصر
با سلام خدمت دوستان
من برنامه کلاینت/سرور در دلفی 7 و بانک SQL sever 2000 نوشتم. وقتی برای فیلدهای فارسی کوئری اجرا میشه فیلدهای فارسی رو نمیتونه پیدا کنه (میره روی فیلد Null ) ولی رو همان ستون با مقدار انگلیسی و یا مقادیر عددی درست کار میکنه.
1- سیستم عامل XP است. فارسی نصب شده
2- در SQL Server 2000 در قسمت Collaction فقط Arabic رو دارم و Farsi و یا Persian نیست.
3- در SQL نوع فیلد (Data type) را nvarchar و nchar تنظیم کردم باز هم جواب نداد.
4- از فونت Tahoma در دلفی اسفاده کردم جواب نداد. SQL هم فقط روی Microsoft Sans Serif تنظیم میشه و Tahoma رو قبول نمیکنه.
5- نمایش رکوردها، حذف و اضافه در دلفی و SQL درست اجرا میشود و مشکلی نیست ولی فقط در کوئری فیلد فارسی رو تشخیص نمیده.
* وقتی برنامه رو خط به خط اجرا میکنم (Watch یا Ctrl+F7) مقدار form2.ClientDataSet1.FieldValues['name’] رو کد نشون میده ولی وقتی در یک متغیر رشته ای میریزم درست نشون میده.
لطفا راهنمایی کنید مشکل کوئری فارسی در دلفی چطور برطرف میشود.
با تشکر

vcldeveloper
شنبه 20 مهر 1387, 01:07 صبح
لطفا راهنمایی کنید مشکل کوئری فارسی در دلفی چطور برطرف میشود.
داده های موجود در بانک را با برنامه خودتان وارد کردید، یا اینکه داده ها از قبل توسط برنامه دیگری وارد شده بودند، و الان برنامه شما قصد خواندن آن را دارد؟ معمولا این مشکلات زمانی پیش میاد که برنامه ایی که با آن داده ها وارد شدند، با برنامه ایی که قصد خواندن داده ها را دارد، یکی نیستند.


سیستم عامل XP است. فارسی نصب شده
در Regional Settings در تب سوم گزینه Language for non-unicode applications (یا چیزی با همین مضمون) روی Farsi تنظیم شده؟

با توجه به پشتیبانی کامل دلفی 2009 از یونی کد، احتمالا در صورت استفاده از این نسخه، همچین مشکلاتی به حداقل میرسه. البته اگر در برنامه خودتان زیاد از کامپوننت استفاده کردید، به احتمال زیاد برای مهاجرت به دلفی2009 با مشکلات زیادی روبرو میشید، چون از یک طرف در این نسخه تغییرات زیادی اعمال شده، و احتمال مشکل پیدا کردن کامپوننت هایی که برای نسخه های قبلی نوشته شدند، با این نسخه بسیار زیاد هست، هم از طرف دیگه، این نسخه تازه منتشر شده، و خیلی از شرکت ها هنوز نسخه سازگار با آن از کامپوننت های خود ارائه نکردند.

kamrazm
یک شنبه 21 مهر 1387, 20:45 عصر
با سلام
ممون از جوابی که دادید
من از برنامه Delphi 7 Enterprise Ver.7 copyright 1983-2002 استفاده می کنم و SQL Enterprise 2000.
فکر می کنید اگر از نسخه های جدید دلفی مثلا 2009 با 2008 یا SQL Develop یا غیره استفاده بشه مشکل کمتر بشه؟در ضمن من برنامه را در مرحله آزمایش نوشتم اگر مشکل کوئری در مقادیر فارسی حل بشه، دیگه باقی فقط کدنویسی است.
در Language for non-unicode applications روی Farsi تنظیم شده ولی فرقی نکرد.
** مقادیر بانک را هم با برنامه وارد کردم هم مستقیم در SQL، هم در نوع Char و هم در nchar، nvarchar ولی متاسفانه هیچکدام از فیلدهای فارسی رو نمیبینه.
**آیا در ++Visual C هم این مشکلات هست یا فقط ازشانس ما تو دلفی هست؟

با تشکر

vcldeveloper
دوشنبه 22 مهر 1387, 00:49 صبح
من از برنامه Delphi 7 Enterprise Ver.7 copyright 1983-2002 استفاده می کنم و SQL Enterprise 2000.
من سالها با همین Delphi 7 و SQL Server 2000 با استفاده از فیلدهای nvarchar برنامه نوشتم، و به مشکل خاصی هم بر نخوردم!


فکر می کنید اگر از نسخه های جدید دلفی مثلا 2009 با 2008 یا SQL Develop یا غیره استفاده بشه مشکل کمتر بشه؟


نسخه های جدیدتر نه! فقط دلفی 2009. چون تا قبل از این نسخه مابقی نسخه ها پشتیبانی کامل از یونیکد نداشتند.
مشکل مطمئنا کمتر میشه، چون دیگه نگرانی از بابت یونیکد نبودن برنامه خودتون نخواهید داشت، ولی به شرطی که این مشکلی که ازش صحبت می کنید، واقعا به یونیکد مربوط باشه، و از جای دیگه ایی بوجود نیومده باشه.