PDA

View Full Version : فرستادن string به sql مربوط به ado query



Borland-Delphi7
شنبه 31 فروردین 1387, 08:39 صبح
با سلام
بنده در برنامه ام در اکثر قسمتها به دلیل یکسان نبودن(Dynamic) بودن Query نیاز به باز نویسی Query در زمان اجرا دارم و کار زیر را انجام میدهم

with frm_dm.sandogh_ado do
begin
close;
sql.Clear;
sql.Add('
' WHERE (poi.s_sh_id=2)or(poi.s_sh_id=8)or(poi.s_sh_id=20) )as poolin'+
' ,(SELECT sum(s_bes)'+
' FROM tbl_sandogh Poo'+
' WHERE (poo.s_sh_id=11)or(poo.s_sh_id=1))as poolout'+

تا پائین به این صورت ادامه میدم آیا به نظر شما راه دیگری است که بتوان با سرعت بیشتر(وقت کمتر) این کار را انجام داد آخه چون Query های من زیاده باید به صورت string در آید و مرتب باید از('+' فاصله) استفاده کنم و مرا کلافه کرده.
ممنون میشم اگر دوستان نظری بدهند

حمیدرضاصادقیان
شنبه 31 فروردین 1387, 08:47 صبح
سلام.شما میتونی در هر خط از sql.add استفاده کنی و هر خط رو ببندی.
وگرنه فکر نمیکنم راه دیگه ای باشه.

Vahid_moghaddam
شنبه 31 فروردین 1387, 08:57 صبح
می تونید از Stored Procedure ها هم استفاده کنید.

delphiprog3000
شنبه 31 فروردین 1387, 09:08 صبح
سلام در کامل کردن صحبتهای دو دوست عزیزمون

اینم دوتا لینک:


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

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


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

Borland-Delphi7
شنبه 31 فروردین 1387, 14:48 عصر
از هر سه دوستی که نظر دادن متشکرم
آقای حمیدرضاصادقیان : دوست عزیز اگر من بخواهم ابتدای هر خط از sql.add استفاده کنم که خطها و کار من زیاد تر میشه


Vahid_moghaddam : دوست گرامی چون Query من از روتین خاصی پیروی نمیکنه نمیتونم از Stored Procedure استفاده کنم


delphiprog3000 : دوست باحال دو لینک شما که در مورد Parameter و Sql.add خودم بود روش جدیدی من ندیدم

در ضمن من یک Function نوشتم که به صورت Public در تمام پروژه با دادن String مربوط به هر Query میتوان آن را اجرا کرد.

SYNDROME
شنبه 31 فروردین 1387, 20:54 عصر
دوست عزیز شما فقط گفتید می خواهید Query ایجاد کنید و ذکر نکردید که مثلا با توجه به چه نکات و تغییرات در برنامه Query ایجاد می شود.
کمی بیشتر توضیح دهید و اگر یک مثال بزنید خیلی بهتر است.
موفق باشید

babak_delphi
یک شنبه 01 اردیبهشت 1387, 00:08 صبح
شما می توانید در یک یونیت که در فرم های مورد لزو ADD کرده اید ، تابعی قرار دهید که یک Query بسازد و table , شرط ها را به عنوان پارامتر بپذیرد و در نهایت آنها را اجرا کند.