Показать сообщение отдельно
  #7  
Старый 12.03.2013, 17:15
Аватар для BBBCat
BBBCat BBBCat вне форума
Новичок
 
Регистрация: 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.
Кстати, действительно не разбирался в коде. Проверь логику после моих исправлений.
Ответить с цитированием