PDA

View Full Version : سوال: خطا در adoqry



manzare
چهارشنبه 06 شهریور 1387, 10:40 صبح
سلام من ميخوام در يك adoqryيك ورودي از نوع textبدم كه قبول نميكنه و ميگه بايد از like استفاده كنم حالا كه استفاده كردم , كد :

ADOQuery2 .SQL.Text:= 'select qtext,ta,tb,tc,td,trutst,qtable.qcode from qtable inner join atable on
(atable.qcode=qtable. qcode )
and (qtable.type=3) and (qtable.adres like''%'+st+'%'')
qtable.adres فيلدي از نوع text , متغير st از نوع string و شامل filname از open dialog هست
حالا خطايي كه ميده اينه :
invalid operator datatyupe. operator equals modulo , type equls varchar
اين خطا را وقتي ميخوام adoqry را activeكنم نشون ميده
چكارش كنم

hadisalahi2
چهارشنبه 06 شهریور 1387, 13:09 عصر
دوست عزیز احتمال داره که نوع فیلد تعریفی شما از نوع varchar کاراکتر باشه و شما داخل اون اطلاعاتی بریزید که با اون نوع سازگاری نداشته باشد ، مثلا حروف فارسی .
نوع فیلدتون رو به Nvarchar تغییر بدید ، امیدوارم که جواب بگیرید.
یا حق

behzad_dr
چهارشنبه 06 شهریور 1387, 13:31 عصر
دوست عزیز اگر منظورت استفاده از like .. شما می تونید از تکنیک زیر استفاده کنید و قطعا به جواب می رسی .


DataModule1.ADOQuery1.SQL.Add('Select (person_id) from Person where person_name like''%'+trim(edit1.text
)+'%'' ');

Amir_Safideh
چهارشنبه 06 شهریور 1387, 16:26 عصر
ببخشید دوست عزیز شما اصلا کد سلکتی رو که گذاشتید دقیق نگاه کردید ؟ بعد از دستور Inner Join و بعد از ذکر فیلدهای جوین شما And آوردید و شروط دستور Where رو گذاشتید . یه بار دیگه نگاه کنید خودتون متوجه میشید .

select qtext,ta,tb,tc,td,trutst,qtable.qcode from qtable inner join atable on
(atable.qcode=qtable. qcode )
Where (qtable.type=3) and (qtable.adres like '%'+st+'%')
------------
موفق باشید .

Hsimple11
چهارشنبه 06 شهریور 1387, 20:17 عصر
کافی بود در همین بخش یا بخش SQL SERVER کلمه LIKE را جستجو میکردید.