PDA

View Full Version : سئوال:مشكل در search كردن



Good Looking
شنبه 25 خرداد 1387, 14:24 عصر
با سلام و خسته نباشيد
يك سئوال راجع به نحوه (search)
در برنامه دفتر تلفن دارم .در واقع همه فيلدهاي ديتابيس را فارسي نوشتم اعم از نام و شماره تماس و ...
وكد مورد نظر را كه همان:
Adotabel1.Locate('name',edit1.text,[lopartialKey]);

را هم نوشتم كه براي سرچ نامها هست ولي با اين همه برنامه ارور مي دهد.
(البته در تالار هم دنبال حل اين مطلب گشتم ولي راه حل را پيدا نكردم)

اگه كسي از دوستان كمكم كنه ممنون مي شوم.

حمیدرضاصادقیان
شنبه 25 خرداد 1387, 14:59 عصر
سلام.لطفا پیغام خطا رو بنویسید؟.

Good Looking
شنبه 25 خرداد 1387, 15:25 عصر
در واقع هيچ عملي انجام نمي شود

حمیدرضاصادقیان
شنبه 25 خرداد 1387, 15:55 عصر
یعنی چی؟ هیچ خطای نمیده؟ اگر امکان داره کل قطعه کد و اگر خطایی میده خود خطا را برای ما پست کنید.

Good Looking
شنبه 25 خرداد 1387, 18:25 عصر
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, XPMan, DB, Grids, DBGrids, ADODB, StdCtrls, Mask,
DBCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
XPManifest1: TXPManifest;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOTable1DSDesigner: TWideStringField;
ADOTable1DSDesigner2: TBCDField;
ADOTable1DSDesigner3: TBCDField;
ADOTable1DSDesigner4: TBCDField;
ADOTable1DSDesigner5: TBCDField;
ADOTable1DSDesigner6: TWideStringField;
ADOTable1DSDesigner7: TWideStringField;
ADOTable1DSDesigner8: TWideStringField;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
Button1: TButton;
Button2: TButton;
Button4: TButton;
Panel2: TPanel;
Button8: TButton;
Button7: TButton;
Button6: TButton;
Button5: TButton;
Button3: TButton;
GroupBox2: TGroupBox;
Button10: TButton;
Edit2: TEdit;
Button11: TButton;
Edit1: TEdit;
Button9: TButton;
procedure Button1Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.ShowModal;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
ADOTable1.Locate('name',Edit1.Text,[loPartialKey]);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
ADOTable1.Filtered:=false;
if not ADOTable1.Locate('ADOTable1DSDesigner2',Edit2.Text ,[]) then
if not ADOTable1.Locate('ADOTable1DSDesigner3',Edit2.Text ,[])then
if not ADOTable1.Locate('ADOTable1DSDesigner4',Edit2.Text ,[])then
if not ADOTable1.Locate('ADOTable1DSDesigner5',Edit2.Text ,[])then
ShowMessage(' This number is missing ');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ADOTable1.Insert;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if (ADOTable1.State=dsinsert) and (ADOTable1.State=dsedit)then
ADOTable1.Post;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
if not(ADOTable1.State=dsinsert) then
ADOTable1.Edit;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
ADOTable1.Delete;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
close;
end;

end.

اصغر (پآچ)
یک شنبه 26 خرداد 1387, 00:25 صبح
سلام دوست من
اینکه فقط یونیت برنامه ات است ماکه به بانک برنامه ات دسترسی نداریم پس این هیچ کار مفید انجام نمیده و فقط میشه از روش ذهنی این کد رو برسی کرد اگه ممکنه بانکت رو هم قرار بده

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

حمیدرضاصادقیان
یک شنبه 26 خرداد 1387, 06:18 صبح
لطفا در تگ کد قرار دهید.


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, XPMan, DB, Grids, DBGrids, ADODB, StdCtrls, Mask,
DBCtrls;

type
TForm1 = class(TForm)
Panel1: TPanel;
XPManifest1: TXPManifest;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOTable1DSDesigner: TWideStringField;
ADOTable1DSDesigner2: TBCDField;
ADOTable1DSDesigner3: TBCDField;
ADOTable1DSDesigner4: TBCDField;
ADOTable1DSDesigner5: TBCDField;
ADOTable1DSDesigner6: TWideStringField;
ADOTable1DSDesigner7: TWideStringField;
ADOTable1DSDesigner8: TWideStringField;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
Button1: TButton;
Button2: TButton;
Button4: TButton;
Panel2: TPanel;
Button8: TButton;
Button7: TButton;
Button6: TButton;
Button5: TButton;
Button3: TButton;
GroupBox2: TGroupBox;
Button10: TButton;
Edit2: TEdit;
Button11: TButton;
Edit1: TEdit;
Button9: TButton;
procedure Button1Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.ShowModal;
end;

procedure TForm1.Button8Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
ADOTable1.Locate('name',Edit1.Text,[loPartialKey]);
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
ADOTable1.Filtered:=false;
if not ADOTable1.Locate('ADOTable1DSDesigner2',Edit2.Text ,[]) then
if not ADOTable1.Locate('ADOTable1DSDesigner3',Edit2.Text ,[])then
if not ADOTable1.Locate('ADOTable1DSDesigner4',Edit2.Text ,[])then
if not ADOTable1.Locate('ADOTable1DSDesigner5',Edit2.Text ,[])then
ShowMessage(' This number is missing ');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ADOTable1.Insert;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
if (ADOTable1.State=dsinsert) and (ADOTable1.State=dsedit)then
ADOTable1.Post;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
if not(ADOTable1.State=dsinsert) then
ADOTable1.Edit;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
ADOTable1.Delete;
end;

procedure TForm1.Button11Click(Sender: TObject);
begin
close;
end;

end.

SYNDROME
یک شنبه 26 خرداد 1387, 06:57 صبح
فکر کنم اگر از Filter استفاده کنی راحتر عمل جستجو را انجام دهید.


ADO.Filtered := False;
ADO.Filter := 'Name='+Quotedstr(Edit1.Text);
ADO.Filtered := True;

موفق باشید

saleh_fartash
یک شنبه 26 خرداد 1387, 07:19 صبح
روی فرم یک edit بزار .با این کد می تونی اسم ها ر. بر اساس شباهت با edit1.text فیلتر می کنه.


if edit1.text <>'' then
begin
form1.adotable1.filtered:=true;
form1.adotable1.filter:='nam like ''%'+edit1.text+'%''';
end
else
form1.adotable1.Filtered:=false;

nam اسم فیلد مورد نظر است.
در onchange ادیت ازش استفاده کن.