
12.03.2013, 17:15
|
 |
Новичок
|
|
Регистрация: 10.03.2013
Сообщения: 73
Репутация: 10
|
|
О боже! Ведь надо было просто внимательно пройтись по коду. Я понятия не имею, что делает эта программа, но у меня при компиляции она даже хинтов не выдала.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, DBCtrls;
type
TForm1 = class(TForm)
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
DBLookupComboBox4: TDBLookupComboBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
kladr_raion: TADOQuery;
kladr_gorod: TADOQuery;
kladr_street: TADOQuery;
ADOConnection1: TADOConnection;
region_source: TDataSource;
raion_source: TDataSource;
gorod_source: TDataSource;
street_source: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
kladr_region: TADOQuery;
procedure DBLookupComboBox1CloseUp(Sender: TObject);
procedure DBLookupComboBox2CloseUp(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.DBLookupComboBox1CloseUp(Sender: TObject);
begin
kladr_street.Active:=false;
kladr_gorod.Active:=false;
kladr_raion.Active:=false;
kladr_raion.SQL.Clear;
kladr_raion.Parameters.AddParameter.Name:='a';
kladr_raion.Parameters.ParamByName('a').DataType:=ftWideString;
kladr_raion.Parameters.AddParameter.Name:='b';
kladr_raion.Parameters.ParamByName('b').DataType:=ftWideString;
kladr_raion.Parameters.AddParameter.Name:='c';
kladr_raion.Parameters.ParamByName('c').DataType:=ftWideString;
kladr_raion.SQL.Add('SELECT *');
kladr_raion.SQL.Add('FROM KLADR');
kladr_raion.SQL.Add('WHERE(((KLADR.CODE Like:a Or KLADR.CODE Like:c))And Not((KLADR.CODE) like:b));');
kladr_raion.Parameters.ParamByName('a').Value:=copy(region_source.DataSet.FieldByName('CODE').Value,1,2)+'___000000__';
kladr_raion.Parameters.ParamByName('b').Value:=copy(region_source.DataSet.FieldByName('CODE').Value,1,2)+'000000000__';
kladr_raion.Parameters.ParamByName('c').Value:=copy(region_source.DataSet.FieldByName('CODE').Value,1,2)+'000________';
kladr_raion.Active:=true;
kladr_street.Active:=false;
kladr_street.SQL.Clear;
kladr_street.Parameters.AddParameter.Name:='a';
kladr_street.Parameters.ParamByName('a').DataType:=ftWideString;
kladr_street.SQL.Add('SELECT *');
kladr_street.SQL.Add('FROM STREET');
kladr_street.SQL.Add('WHERE(((STREET.CODE) Like:a));');
kladr_street.Parameters.ParamByName('a').Value:=copy(region_source.DataSet.FieldByName('CODE').Value,1,11)+'______';
kladr_street.Active:=true;
end;
procedure TForm1.DBLookupComboBox2CloseUp(Sender: TObject);
begin
kladr_street.Active:=false;
kladr_gorod.Active:=false;
if copy(raion_source.DataSet.FieldByName('CODE').Value,3,3)<>'000' then
begin
kladr_gorod.SQL.Clear;
kladr_gorod.Parameters.AddParameter.Name:='a';
kladr_gorod.Parameters.ParamByName('a').DataType:=ftWideString;
kladr_gorod.Parameters.AddParameter.Name:='b';
kladr_gorod.Parameters.ParamByName('b').DataType:=ftWideString;
kladr_gorod.SQL.Add('SELECT *');
kladr_gorod.SQL.Add('FROM KLADR');
kladr_gorod.SQL.Add('WHERE ((KLADR.CODE Like :a And Not ((KLADR.CODE) Like :b)));');
kladr_gorod.Parameters.ParamByName('a').Value:=copy(raion_source.DataSet.FieldByName('CODE').Value,1,5)+'________';
kladr_gorod.Parameters.ParamByName('b').Value:=copy(raion_source.DataSet.FieldByName('CODE').Value,1,5)+'000000__';
kladr_gorod.Active:=true;
end;
kladr_street.Active:=false;
kladr_street.SQL.Clear;
kladr_street.Parameters.AddParameter.Name:='a';
kladr_street.Parameters.ParamByName('a').DataType:=ftWideString;
kladr_street.SQL.Add('SELECT *');
kladr_street.SQL.Add('FROM STREET');
kladr_street.SQL.Add('WHERE (((STREET.CODE) Like :a));');
kladr_street.Parameters.ParamByName('a').Value:=copy(raion_source.DataSet.FieldByName('CODE').Value,1,11)+'______';
kladr_street.Active:=true;
end;
end.
Кстати, действительно не разбирался в коде. Проверь логику после моих исправлений.
|