PDA

View Full Version : سوال: پیدا کردن فیلدهایی که ابتدای آنها با مقدار یک متغیر شروع می شود؟



persianboy_333
پنج شنبه 12 آبان 1390, 16:17 عصر
سلام
تو برنامم از adodataset برای کار با پایگاه داده استفاده میکنم.حالا می خوام تمام رکوردهایی که اولش با متغیر s شروع میشه رو پیدا کنم(متغیر s از نوع رشته است ) را دارد(فیلد id از نوع number است).تو دستورات sql هم برای پیدا کردن شرطی فکر کنم باید از دستور
select * from table1 where id like 's*'
استفاده کنم.


تو کوتیشن گذاریش مشکل دارم چون تو خود دستور sql کوتیشن میخواد و برای commandText ، adodataset هم باید یه کوتیشن کلی بذارم ولی قاطی میشه!
یعنی دستور باید اینجوری باشه :
adodataset1.commandtext:=select * from table1 where id like s *


حالا میخوام تو کوتیشن گذاریش کمکم کنید.


با تشکر

سعید صابری
پنج شنبه 12 آبان 1390, 19:25 عصر
...id LIKE '+QuotedStr('s')

persianboy_333
یک شنبه 15 آبان 1390, 03:34 صبح
...id LIKE '+QuotedStr('s')


سلام
ممنون از پاسختون. اینی که گفتی نوشتم بازم نشد.
اگه کسی این کد رو بلده ممنون میشم کمکم کنه. خیلی گیره این خط کد هستم! در واقع میخوام تمام رکوردهایی که اولش با متغیر s شروع میشه رو واسم پیدا کنه.اگه میشه این خط رو کامل و با تمام کوتیشن هاش واسم بذارید.

با تشکر

Felony
یک شنبه 15 آبان 1390, 05:44 صبح
var
TSQL: string;
begin
TSQL:= 'SELECT * FROM table1 WHERE ID LIKE ' + QuotedStr('s%');
ShowMessage(TSQL);
end;

persianboy_333
یک شنبه 15 آبان 1390, 18:02 عصر
ممنون از پاسختون آقای تاجیک

ولی بازم نشد!!!

این برنامه رو ببینید کجاشو اشتباه نوشتم؟ (http://www.mediafire.com/?jcwcbmcc7iciec7)

سعید صابری
یک شنبه 15 آبان 1390, 20:13 عصر
شما ابتدا


var
s:string;
begin
s:='88';

ADODataSet1.CommandText:= 'SELECT * FROM member WHERE id LIKE ' + QuotedStr('(s)%');

شما وقتی s را در'' میزارین دیگه مقدار 88 را به شما نخواهد داد بلکه حرف s هست. به همین دلیل چون هیچ کدوم از مقدار فیلد ID با s شروع نشده هیچ رکوردی انتخاب نمی شود.
شکل صحیح به صورت زیر:


ADODataSet1.CommandText:= 'SELECT * FROM member WHERE id LIKE ' + QuotedStr(s+'%');

persianboy_333
یک شنبه 15 آبان 1390, 21:51 عصر
دیدم زدن دکمه تشکر کافی نیست :
ایول داری داداش!:قلب: