ورود

View Full Version : سوال: برنامه نویسی جمع چند سطر خاص از جدول در دلفی (فوری)



viruslove
جمعه 17 تیر 1390, 13:35 عصر
سلام دوستان
من یه پروزه دلفی دارم که مدیریت تاکسی تلفنیه با پایگاه sql
برای نوشتن کد جمع درآمد یک روز مشخص از جدول داخل محیط دلفی هر کدی که مینویسم خطا میده
میدونم که باید از select sum(daramad) from table1 where tarikh=cobobox1 استفاده کنم اما نمیدونم که باید چه کدهای دیگه ای برای باز کردن واتصال به جدول قبل وبعد از کدجمع بنویسم که جواب بده لطفا کمکم کنید 2 روز دیگه باید پروزه ام رو تحویل بدم
ممنون

Vahid.Shatery
شنبه 18 تیر 1390, 21:04 عصر
سلام
این دستوری که شما نوشتید باید توسط Qry اجرا بشه و روش اجرای کوئری به شکل زیره .


with qrySendToTbl do
begin
close ;
SQL.Text := 'select sum(daramad) from table1 where tarikh ' + QuotedStr(trim(cobobox1.Text)) ;
qrySendToTbl.Open;
ExecSQL ;
end ;

pezhvakco
دوشنبه 20 تیر 1390, 19:25 عصر
سلام :

برنامه نویسی جمع چند سطر خاص از جدول در دلفی (فوری)
این " فوری " که نوشتین به پرسش ربط داره یا یه دستور به کاربران سایت است .


میدونم که باید از select sum(daramad) from table1 where tarikh=cobobox1 استفاده کنم اما نمیدونم که باید چه کدهای دیگه ای برای باز کردن واتصال به جدول قبل وبعد از کدجمع بنویسم که جواب بده لطفا کمکم کنید 2 روز دیگه باید پروزه ام رو تحویل بدم
اگه یه کم از دونسته هاتون در مورد برنامه بیش تر می گفتین بهتر بود تا " پروژه " زودتر انجام بشه .

کد دستور جناب وحید درسته اگه یه ویرایش کوچیک در دستور جستجو بشه و فکر کنم اگه کوئری رو باز (Open) کنین بهتره از اجرا (Exec) است :>

with qrySendToTbl do
begin
close ;
SQL.Text := 'select sum(daramad) from table1 where tarikh LIKE ' + QuotedStr(trim(cobobox1.Text)) + ' ';
Open;
end ;

Vahid.Shatery
دوشنبه 20 تیر 1390, 20:44 عصر
ممنون از تذکرتون بابت open کردن qry .
ولی چند نکته تو کد شما وجود داره .
1- زمانی که از Lke استفاده می کنیم دیگه نیازی به trim نیست و بایت به صورت کد زیر بشه .
2 - چون از Combobox استفاده می شه نیازی به like نیست .
ضمنا . من خودم شخصا تنونستم عدد را به صورت like استفاده کنم .

with qrySendToTbl do
begin
close ;
SQL.Text := 'select sum(daramad) from table1 where tarikh LIKE ' + QuotedStr('%' + (cobobox1.Text)+ '%' ) ;
Open;
end ;

pezhvakco
دوشنبه 20 تیر 1390, 22:13 عصر
جناب وحید خان در کد ابتدایی شما هیچ رابطه برای شرط نوشته نشده است :

SQL.Text := 'select sum(daramad) from table1 where tarikh ' + QuotedStr(trim(cobobox1.Text)) ;


- زمانی که از Lke استفاده می کنیم دیگه نیازی به trim نیست و بایت به صورت کد زیر بشه .
چرا نیازی نیست . این دو به بهم ربطی ندارند .
Like برای زمانی بکار میره که بخواهیم داده رشته ای یک ستون از جدول مانند داده شرط باشه (کد دستور مربوط به SQL است ).
Trimبرای زمانی بکار میره که بخواهیم فضای خالی (Space) دو طرف یک مقدار رشته ای پاک بشه (کد دستور مربوط به دلفی) .


- چون از Combobox استفاده می شه نیازی به like نیست .
این رو هم نفهمیدم چرا می گین .


ضمنا . من خودم شخصا تنونستم عدد را به صورت like استفاده کنم .
اگه منظور شما اینه که یک ستون با ساختار عددی رو در شرط با Like بیاورین که کار سختی نیست .

WHERE (shomare LIKE '1')
OR
WHERE (shomare LIKE '1%')
OR
WHERE (shomare LIKE '%1')
OR
WHERE (CAST(shomare AS varchar) LIKE '1')
OR
WHERE (CAST(shomare AS varchar) LIKE '1_')
OR
.
.
.