View Full Version : در رابطه با وصل شدن به بانکها در دلفی
tanhayetanha
دوشنبه 31 اردیبهشت 1386, 23:51 عصر
دوستا ن عزیز
من در حال نوشتن یک برنامه کتابخانه هستم.
برای جستجو در بانک هیچ جستجویی را بر اساس کلمات فارسی در فرم های طراحی شده ام انجام نمی گیرد.یعنی روی onkeypressیکی از editها دستوری می نویسم که با وارد کردن یک رشته مثلا نام و فشردن کلید enterهر رکوردی که در بانک با این مشخصات وجود دارد را برایم در یک dbgridنمایش دهد اما اگر رشته وارد شده در editفارسی باشد پیغام میدهد که چنین رکوردی وجود ندارد .
لطفا راهنمایی کنید.
HamedRep
سه شنبه 01 خرداد 1386, 07:45 صبح
سلام
شاید Data Type فیلد شما nvarchar نبوده و حالا مشکل unicode پیدا کرده .
Mahyaa
سه شنبه 01 خرداد 1386, 08:49 صبح
دیتا بیس شما چیه؟
Ado
SQL
DB
or etc
از دوستان خواهش میکنم در پاسخ هایی که به دیگران میدن ، یک کمی تامل کنند . مجبور نیستیم جواب همه سوالات رو (که بلد نیستیم) بدیم . (ADO , SQL , DB ???????)
sardar_ahmadi
سه شنبه 01 خرداد 1386, 09:57 صبح
اگر از DB استفاده میکنی با دستور Findnearst و اگر با ADO کار میکنی با دستور Locate .
حمیدرضاصادقیان
سه شنبه 01 خرداد 1386, 10:27 صبح
دوست عزیز شاید رشته رو درست پاس نمیکنی.لطفا کدت رو بنویس بعد بهتره از دستورات خود sql به صورت Stored procedure استفاده کنی که سرعت کمتر خواهد شد.
SYNDROME
چهارشنبه 02 خرداد 1386, 13:46 عصر
با سلام
از روش زیر استفاده کن.
Select *
From Tbl_Test
Where Name =N'''+Edit1.text+''';
N : برای این است که در هنگام تبدیل مقدار شما به مقدار بانک اگر از نوع Nvarcharبود مشکل نباشد.
tanhayetanha
چهارشنبه 02 خرداد 1386, 23:44 عصر
نوع databaseکه اشتفاده کردم sqlاست و نوع فیلد رو هم از نوع nvarchar انتخاب کردم. کدی هم که تو دلفی نوشتم اینه:
در این برنامه از یک editاستفاده کردم که با تایپ یک متن و فشردن کلید enterدر بانک جستجو انجام بشه و نتیجه در یک dbgrid نشون داده بشه .اما اگه تویه editفارسی تایپ بشه هیچی از بانک پیدا نمی کنه و متن messagedlgرو نشون میده.لطفا اگه ممکنه راهنمایی کنید.
if key=#13 then
begin
with adoqyery1 do
begin
close;
sql.clear;
sql.add('select *from aza where famil=:m');
parameters.parambyname('m').value:=edit7.text;
open;
if isempty=false then
begin
dbgrid3.datasource:=datasource1;
end
else
messagedlg('اطلاعات مورد نظر در بانک وجود ندارد.', mtError, [mbOK], 0);
end;
end;
ghabil
پنج شنبه 03 خرداد 1386, 00:20 صبح
اطلاعات هم از روی همین ماشین و با همین برنامه وارد شدند ؟
یک نگاه توی پروفایلر بکن ببین دقیقا چه دستوری به ازای جستجوت برای SQLServer میره، بعد هم کوئریش رو بزار اینجا
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.