Missing Connection or Connection String

Delphi

12/09/2011

Bom Dia,

Estou com um pequeno (e chato) problema em meu projeto de sistema...

Estou criando um sistema para agendamento de fisioterapia, mas o Form de pacientes está retornando um erro logo após o primeiro cadastro.

1. Se a tabela TBPACIENTES do banco de dados estiver VAZIA o form de cadastro para novos pacientes abre normalmente e funciona 100%, mas se tiver ao menos 1 cadastro ao tentar abrir o form o erro: MISSING CONNECTION OR CONNECTION STRING é retornado.

2. Da primeira vez que isso ocorreu eu verifiquei todo o código e corrigi algumas falhas e o programa funcionou 100%, mas logo após ligar o computador e testar o programa novamente o problema voltou.

3. Sou iniciante em DELPHI e não sei debugar.

Segue o código do form:

unit UPacientes;

interface

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

type
  TfrmPacientes = class(TForm)
    DBEdit1: TDBEdit;
    Label2: TLabel;
    DBEdit2: TDBEdit;
    Label3: TLabel;
    DBEdit3: TDBEdit;
    Label4: TLabel;
    DBEdit4: TDBEdit;
    Label5: TLabel;
    Label6: TLabel;
    DBEdit6: TDBEdit;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    DBEdit10: TDBEdit;
    Label11: TLabel;
    DBEdit11: TDBEdit;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Button1: TButton;
    Button2: TButton;
    DBLookupComboBox1: TDBLookupComboBox;
    DBLookupComboBox2: TDBLookupComboBox;
    qryAux: TADOQuery;
    qryAux2: TADOQuery;
    edtEndereco: TEdit;
    edtBairro: TEdit;
    edtCidade: TEdit;
    edtEstado: TEdit;
    dbedtCidade: TDBEdit;
    dbedtBairro: TDBEdit;
    dbedtEstado: TDBEdit;
    dbedtCodigo: TDBEdit;
    dbnPacientes: TDBNavigator;
    dbedtEndereco: TDBEdit;
    BitBtn1: TBitBtn;
    dsQry: TADODataSet;
    Label1: TLabel;
    Label15: TLabel;
    DBEdit5: TDBEdit;
    dbedtSexo: TDBEdit;
    Label16: TLabel;
    DBEdit7: TDBEdit;
    DBLookupComboBox3: TDBLookupComboBox;
    DBLookupComboBox4: TDBLookupComboBox;
    DBLookupComboBox5: TDBLookupComboBox;
    Label17: TLabel;
    Label18: TLabel;
    Label19: TLabel;
    Ramal: TLabel;
    DBEdit8: TDBEdit;
    Label20: TLabel;
    DBEdit9: TDBEdit;
    dbrgConv: TDBRadioGroup;
    GroupBox1: TGroupBox;
    GroupBox2: TGroupBox;
    Label22: TLabel;
    Label23: TLabel;
    Label24: TLabel;
    Label25: TLabel;
    Label26: TLabel;
    Label27: TLabel;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    Label31: TLabel;
    Label32: TLabel;
    Label21: TLabel;
    Label33: TLabel;
    Label34: TLabel;
    Label35: TLabel;
    Label36: TLabel;
    Label37: TLabel;
    Label38: TLabel;
    Label39: TLabel;
    Label40: TLabel;
    Label41: TLabel;
    Label42: TLabel;
    RadioButton3: TRadioButton;
    RadioButton1: TRadioButton;
    DBEdit12: TDBEdit;
    procedure RadioButton1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DBEdit6KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit11KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit3Change(Sender: TObject);
    procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button2Click(Sender: TObject);
    procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);
    procedure DBEdit2Change(Sender: TObject);
    procedure DBEdit4Change(Sender: TObject);
    procedure DBEdit6Change(Sender: TObject);
    procedure DBEdit11Change(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
    procedure dbrgConvChange(Sender: TObject);
    procedure DBEdit8Change(Sender: TObject);
    procedure FormShow(Sender: TObject);

  private

    //Função para a máscara dos edits
    function MASCARA(edt: String;str:String):string;

    //Função para verificar se o CEP existe no banco de dados
    function VERIFICA(const CEP_CHECK: String): Boolean;

    //Função para buscar o CEP no banco de dados
    function VERCEP(const VER_CEP: String): Boolean;

  public
    { Public declarations }
  end;

var
  frmPacientes: TfrmPacientes;

  implementation

uses UDMPrincipal, URuaVarios;

{$R *.dfm}


//Quando clicar no botão "?" do CEP ele irá executar o código abaixo
procedure TfrmPacientes.BitBtn1Click(Sender: TObject);
var
endereco, bairro, cidade, estado: integer;
CEP: string;
begin

//Uma caixa de diálogo aparecerá perguntando o nome da rua
inputquery('Consultar CEP', 'Digite o nome da rua', CEP);

//Condição que verifica se existe mais de um endereço com o mesmo nome
  if verifica(CEP) then
    begin
      Messagedlg('Mais de um registro encontrado', mtInformation, [mbOk], 0);
      application.CreateForm(TfrmRVarios, frmRVarios);
      frmRVarios.show;
    end
  else
    begin
      qryAux2.Close;
      qryAux2.SQL.Clear;
      qryAux2.sql.Add('SELECT END_CEP FROM TBENDERECO WHERE END_NOME='+QUOTEDSTR(CEP));
      qryAux2.Open;
      DBEdit11.Text:= qryAux2.FieldByName('END_CEP').Asstring;
      qryAux2.Close;

      //Selecionando os campos da tabela de ENDEREÇO e preenchendo o edit com o resultado
      qryAux.SQL.Clear;
      qryAux.sql.Add('SELECT END_CODIGO, END_NOME, END_BAIRCOD FROM TBENDERECO WHERE TBENDERECO.END_CEP=' +quotedstr(DBEdit11.text));
      qryAux.open;
      endereco:= qryAux.FieldByName('END_CODIGO').AsInteger;
      bairro:= qryAux.FieldByNamE('END_BAIRCOD').AsInteger;
      edtEndereco.text:= qryAux.FieldByName('END_NOME').AsString;
      qryAux.Close;
      dbedtEndereco.text:= inttostr(endereco);

      //Fechando a query e remodulando para procurar o registro de BAIRRO e preencher o edito com o resultado
      qryAux.sql.Clear;
      qryAux.SQL.Add('SELECT * FROM TBBAIRROS WHERE BAIR_CODIGO=' +inttostr(bairro));
      qryAux.open;
      edtBairro.Text:= qryAux.FieldByName('BAIR_NOME').AsString;
      cidade:= qryAux.FieldByName('BAIR_CIDCOD').AsInteger;
      qryAux.Close;
      dbedtBairro.text:= inttostr(bairro);

      //Mesma função acima com a tabela de CIDADES
      qryAux.SQL.Clear;
      qryAux.SQL.Add('SELECT * FROM TBCIDADES WHERE CID_CODIGO=' +inttostr(cidade));
      qryAux.Open;
      edtCidade.Text:= qryAux.FieldByName('CID_NOME').AsString;
      estado:= qryAux.FieldByName('CID_ESTCOD').AsInteger;
      qryAux.Close;
      dbedtCidade.text:= inttostr(cidade);

      //E por último a mesma função com a tabela de ESTADOS
      qryAux.SQL.Clear;
      qryAux.SQL.Add('SELECT * FROM TBESTADOS WHERE EST_CODIGO=' +inttostr(estado));
      qryAux.Open;
      edtEstado.text:= qryAux.FieldByName('EST_NOME').AsString;
      qryAux.Close;
      dbedtEstado.text:= inttostr(estado);
      DBEdit5.SetFocus;
    //END do Else
    end;
//END do Procedure
end;

//Procedure que iniciará o bloco de comandos quando o botão de CONFIRMA for pressionado
procedure TfrmPacientes.Button1Click(Sender: TObject);
begin

  //Início da condicional do NOME DO PACIENTE
  if(DBEdit1.Text='') then
    begin
      Messagedlg('O nome do paciente não pode estar em branco!', mtInformation, [mbOk], 0);
      dbedit1.setfocus;
    end
    //Fim da condicional do NOME DO PACIENTE

      //Início da condicional do PRONTUÁRIO
      else if (dbedit4.Text='') then
        begin
          Messagedlg('O paciente precisa ter um prontuário!', mtInformation, [mbOk], 0);
            if DBEdit4.CanFocus then
              dbedit4.SetFocus;
        end
        //Fim da condicional do PRONTUÁRIO

            //Início da condicional do RESPONSÁVEL
            else if DBEdit9.Text='' then
              begin
                Messagedlg('O paciente precisa ter um responsável!', mtInformation, [mbOK], 0);
                  if DBedit9.CanFocus then
                   DBEdit9.SetFocus
              end
              //Fim da condicional do RESPONSÁVEL

                         //Início da condicional do ENDEREÇO
                         else if (DBEdit11.Text='') then
                            begin
                              if Messagedlg('As informações de "Endereço" não foram preenchidas, deseja cadastrar mesmo assim?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
                               begin
                                dbnPacientes.BtnClick(nbPost);
                                showmessage('Paciente cadastrado com sucesso!');
                                frmPacientes.Close
                               end
                                  else
                                    begin
                                      if DBEdit11.CanFocus then
                                        DBEdit11.SetFocus
                                    end
                            end
                            //Fim da condicional do ENDEREÇO

                                      //Início da condicional do COMPLEMENTO
                                      else if (DBEdit10.Text='') then
                                       begin
                                        if Messagedlg('O campo "Nº/Complemento" não foi preenchido, deseja cadastrar mesmo assim?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
                                          begin
                                            dbnPacientes.BtnClick(nbPost);
                                            showmessage('Paciente cadastrado com sucesso!');
                                            frmPacientes.Close
                                          end
                                              else
                                                begin
                                                  if DBEdit10.CanFocus then
                                                    DBEdit10.SetFocus
                                                end
                                       end
                                       //Fim da condicional do COMPLEMENTO

                                                  //Início da condicional do SARAM
                                                  else if DBEdit2.Text='' then
                                                    begin
                                                      if Messagedlg('O campo "Saram" não foi preenchido, deseja cadastrar mesmo assim?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
                                                        begin
                                                          dbnPacientes.BtnClick(nbPost);
                                                          showmessage('Paciente cadastrado com sucesso!');
                                                          frmPacientes.Close
                                                        end
                                                            else
                                                              begin
                                                               if DBEdit2.CanFocus then
                                                                 DBEdit2.SetFocus
                                                              end
                                                    end
                                                    //Fim da condicional do SARAM

                                                                //Início da condicional do TELEFONE
                                                                else if DBEdit5.Text='' then
                                                                  begin
                                                                    if Messagedlg('Não foi informado um telefone para contato, deseja cadastrar mesmo assim?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
                                                                      begin
                                                                        dbnPacientes.BtnClick(nbPost);
                                                                        showmessage('Paciente cadastrado com sucesso!');
                                                                        frmPacientes.Close
                                                                      end
                                                                          else
                                                                            begin
                                                                             if DBEdit5.CanFocus then
                                                                               DBEdit5.SetFocus
                                                                            end
                                                                  end
                                                                  //Fim da condicional do TELEFONE

                                                                              //Início da condicional do NUMERO DA RESIDÊNCIA
                                                                              else if DBEdit6.Text='' then
                                                                                begin
                                                                                  if Messagedlg('Não foi informado um número de residência, deseja cadastrar mesmo assim?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
                                                                                    begin
                                                                                     dbnPacientes.BtnClick(nbPost);
                                                                                     showmessage('Paciente cadastrado com sucesso!');
                                                                                     frmPacientes.Close
                                                                                    end
                                                                                      else
                                                                                        begin
                                                                                        if DBEdit6.CanFocus then
                                                                                          DBEdit6.SetFocus
                                                                                        end
                                                                                end
                                                                                //Fim da condicional do NUMERO DA RESIDÊNCIA

                                                                                          //Início da condicional da DATA DE NASCIMENTO
                                                                                          else if (DBEdit3.text='') then
                                                                                            begin
                                                                                              if Messagedlg('O campo "Data de Nascimento" não foi preenchido, deseja cadastrar mesmo assim?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
                                                                                                begin
                                                                                                  dbnPacientes.BtnClick(nbPost);
                                                                                                  showmessage('Paciente cadastrado com sucesso!');
                                                                                                  frmPacientes.Close
                                                                                                end
                                                                                              else
                                                                                                begin
                                                                                                  if DBEdit3.CanFocus then
                                                                                                    DBEdit3.SetFocus
                                                                                                end
                                                                                            end
                                                                                            //Fim da condicional da DATA DE NASCIMENTO
  else
    begin
      dbnPacientes.BtnClick(nbPost);
      showmessage('Paciente cadastrado com sucesso!');
      frmPacientes.Close;
    //END do Else e fim de TODAS AS CONDICIONAIS ACIMA
    end;
 //END do Pocedure
end;

//Ao clicar no botão "Cancelar" o Form será fechado
procedure TfrmPacientes.Button2Click(Sender: TObject);
begin
frmPacientes.Close;
end;

//Quando o edito do CEP chegar em 8 dígitos o foco mudará para o edit do NÚMERO DA RESIDÊNCIA
procedure TfrmPacientes.DBEdit11Change(Sender: TObject);
var
endereco, bairro, cidade, estado: integer;
begin

  //Início da condicional para verificar se o CEP digitado possui 8 dígitos
  if length (dbedit11.text)=8 then
    begin

      //Início da condicional para verificar se o CEP existe no banco de dados e preencher as informações automaticamente
      if VERCEP(DBEdit11.Text) then
        begin
          //Selecionando os campos da tabela de ENDEREÇO e preenchendo o edit com o resultado
          qryAux.SQL.Clear;
          qryAux.sql.Add('SELECT END_CODIGO, END_NOME, END_BAIRCOD FROM TBENDERECO WHERE TBENDERECO.END_CEP=' +quotedstr(DBEdit11.text));
          qryAux.open;
          endereco:= qryAux.FieldByName('END_CODIGO').AsInteger;
          bairro:= qryAux.FieldByNamE('END_BAIRCOD').AsInteger;
          edtEndereco.text:= qryAux.FieldByName('END_NOME').AsString;
          qryAux.Close;
          dbedtEndereco.text:= inttostr(endereco);

          //Fechando a query e remodulando para procurar o registro de BAIRRO e preencher o edito com o resultado
          qryAux.sql.Clear;
          qryAux.SQL.Add('SELECT * FROM TBBAIRROS WHERE BAIR_CODIGO=' +inttostr(bairro));
          qryAux.open;
          edtBairro.Text:= qryAux.FieldByName('BAIR_NOME').AsString;
          cidade:= qryAux.FieldByName('BAIR_CIDCOD').AsInteger;
          qryAux.Close;
          dbedtBairro.text:= inttostr(bairro);

          //Mesma função acima com a tabela de CIDADES
          qryAux.SQL.Clear;
          qryAux.SQL.Add('SELECT * FROM TBCIDADES WHERE CID_CODIGO=' +inttostr(cidade));
          qryAux.Open;
          edtCidade.Text:= qryAux.FieldByName('CID_NOME').AsString;
          estado:= qryAux.FieldByName('CID_ESTCOD').AsInteger;
          qryAux.Close;
          dbedtCidade.text:= inttostr(cidade);

          //E por último a mesma função com a tabela de ESTADOS
          qryAux.SQL.Clear;
          qryAux.SQL.Add('SELECT * FROM TBESTADOS WHERE EST_CODIGO=' +inttostr(estado));
          qryAux.Open;
          edtEstado.text:= qryAux.FieldByName('EST_NOME').AsString;
          qryAux.Close;
          dbedtEstado.text:= inttostr(estado);
            if DBEdit5.CanFocus then
              DBEdit5.SetFocus;
        end
        //Fim do bloco de comando acima
      else
        Messagedlg('CEP não encontrado!', mtError, [mbOk], 0);
    end
    //Fim da condicional de verificação do CEP no banco de dados

  else
    begin
      edtEndereco.Clear;
      edtBairro.Clear;
      edtCidade.Clear;
      edtEstado.Clear;
    //END do Else e Fim da condicional para verificar se o CEP digitado possui 8 dígitos
    end;
//END do Procedure
end;

//Procedure que verificar se as teclas pressionadas para o edit do "CEP" são apenas números
Procedure TfrmPacientes.DBEdit11KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9',#8]) then Abort;
end;

//Procedure que aplica a máscara ao edit do SARAM
procedure TfrmPacientes.DBEdit2Change(Sender: TObject);
begin
  dbedit2.Text := Mascara(dbedit2.Text,'999999-9');
  dbedit2.SelStart := Length(dbedit2.Text);
end;

//Procedure que verifica se as teclas pressionadas para o edit do SARAM são apenas números
procedure TfrmPacientes.DBEdit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8]) then Abort;
end;

//Procedure que aplica a máscara ao edit da DATA DE NASCIMENTO
procedure TfrmPacientes.DBEdit3Change(Sender: TObject);
begin
  dbedit3.Text := Mascara(dbedit3.Text,'99/99/9999');
  dbedit3.SelStart := Length(dbedit3.Text);
end;

//Procedure que verifica se as teclas pressionadas para o edit da DATA DE NASCIMENTO são apenas números
procedure TfrmPacientes.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9',#8]) then Abort;
end;

//Procedure que aplica a máscara ao edit do prontuário
procedure TfrmPacientes.DBEdit4Change(Sender: TObject);
begin
  dbedit4.Text := Mascara(dbedit4.Text,'9-99999');
  dbedit4.SelStart := Length(dbedit4.Text);
end;

//Procedure que aplica a máscara ao edit do TELEFONE
procedure TfrmPacientes.DBEdit6Change(Sender: TObject);
begin
  dbedit6.Text := Mascara(dbedit6.Text,'(99) 9999-9999');
  dbedit6.SelStart := Length(dbedit6.Text);
end;

//Procedure que verifica se as teclas pressionadas no edit do TELEFONE são apenas números
procedure TfrmPacientes.DBEdit6KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9',#8]) then Abort;
end;

//Procedure que muda o foco para o botão "Confirma" quando o edit RAMAL possuir 4 dígitos
procedure TfrmPacientes.DBEdit8Change(Sender: TObject);
begin
  if length (dbedit11.text)=4 then
    begin
      if button1.CanFocus then
        button1.SetFocus;
    end;

end;

//Procedure do DBRadioGroup do CONVENIO
procedure TfrmPacientes.dbrgConvChange(Sender: TObject);
begin

  //Início da condicional que verifica se o valor OUTRO CONVÊNIO foi selecionado
  if dbrgConv.ItemIndex=3 then
    begin
      Label16.Visible:= TRUE;
      DBEdit7.Visible:= TRUE
    end
  else
    begin
      Label16.Visible:= FALSE;
      DBEdit7.Visible:= FALSE
    end;
    //Fim da condicional que verifica se o valor OUTRO CONVÊNIO foi selecionado

        //Início da condicional que verifica se o CONVÊNIO É TITULAR
        if (dbrgConv.ItemIndex=0) then
          begin

            //Início da condicional que verifica se o SEXO É MASCULINO
            if (RadioButton3.Checked) then
              begin
                DBEdit9.Clear;
                DBEdit9.Text:='O Próprio';
                DBEdit9.Enabled:= FALSE
              end
              //Fim da condicional que verifica se o SEXO É MASCULINO

                   //Início da condicional que verifica se o SEXO É FEMININO
                   else if (RadioButton1.Checked) then
                      begin
                        DBEdit9.Clear;
                        DBEdit9.Text:='A Própria';
                        DBEdit9.Enabled:= FALSE
                      end
                      //Fim da condicional que verifica se o SEXO É FEMININO
          end
        else
          begin
            DBEdit9.Enabled:= TRUE;
            DBEdit9.Clear;
          //END do Else e Fim da condicional que verifica se o CONVÊNIO É TITULAR
          end;
//END do Procedure
end;

//Quando o form de pacientes for FECHADO será executado este bloco de comandos
procedure TfrmPacientes.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DMPrincipal.TBPacientes.Close;
DMPrincipal.dsAux.Close;
end;

//Quando o form de pacientes for ABERTO será executado este bloco de comandos
procedure TfrmPacientes.FormShow(Sender: TObject);
var
PROXIMO_CODIGO : integer;
begin
  //Numeração automatica da tabela PACIENTES
  DMPrincipal.TBPacientes.Open;
  DMPrincipal.TBPacientes.Last;
  PROXIMO_CODIGO:=DMPrincipal.TBPacientes.FieldByName('PAC_CODIGO').AsInteger+1;
  DMPrincipal.TBPacientes.Append;
  DMPrincipal.TBPacientes.FieldByName('PAC_CODIGO').AsInteger:=PROXIMO_CODIGO;
    if DBEdit1.CanFocus then
      DBEdit1.SetFocus;
end;

//Procedure que incluirá o SEXO FEMININO no banco de dados
procedure TfrmPacientes.RadioButton1Click(Sender: TObject);
begin

  //Início da condicional que verifica se o radio FEMININO está marcado
  if RadioButton1.Checked then
    begin
      dbedtSexo.text:= 'F';

      //Início da condicional que verifica se o convênio está setado como TITULAR
        if dbrgConv.ItemIndex=0 then
          begin
            DBEdit9.Clear;
            DBEdit9.Text:='A Própria';
            DBEdit9.Enabled:= FALSE
          end
        else
          DBEdit9.Enabled:= TRUE
        //Fim da condicional que verifica se o convênio está setado como TITULAR

    end
  //Fim da condicional que verifica se o radio FEMININO está marcado
  else
    dbedtSexo.Clear;
//END do Procedure
end;

//Procedure que incluirá o SEXO FMASCULINO no banco de dados
procedure TfrmPacientes.RadioButton3Click(Sender: TObject);
begin
  if RadioButton3.Checked then
    begin
      dbedtSexo.text:= 'M';

      //Início da condicional que verifica se o convênio está setado como TITULAR
      if dbrgConv.ItemIndex=0 then
        begin
          DBEdit9.Clear;
          DBEdit9.Text:='O Próprio';
          DBEdit9.Enabled:= FALSE
        end
      //Fim da condicional que verifica se o convênio está setado como TITULAR
      else
        DBEdit9.Clear
    end
    //Fim da condicional que verifica se o radio MASCULINO está marcado
  else
    dbedtSexo.Clear;

//END fo Procedure
end;

//Função que procura o CEP no banco de dados
function TfrmPacientes.VERCEP(const VER_CEP: String): Boolean;
begin
   with DMPrincipal.conexao, DMPrincipal.dsCEP do
     begin

        //Início da condicional que verifica se o componente "conexao" está conectado ao banco de dados
        if not Connected then

            Connected := True;
              Close;
              CommandText :=  'SELECT END_CEP FROM TBENDERECO WHERE END_CEP='+quotedstr(VER_CEP);
              Open;

              if not IsEmpty then
                Result := TRUE
              else
                Result := FALSE

     //END do With e fim da condicional que vericifa se o componente "conexao" está conectado ao banco de dados
     end;
//END da Função
end;

//Função que verifica se existe mais de uma rua com o mesmo nome no banco de dados
function TfrmPacientes.verifica(const CEP_CHECK: String): Boolean;
begin
   with DMPrincipal.conexao, DMPrincipal.dsEnd do
      begin

        //Início da condicional que verifica se o componente "conexao" está conectado ao banco de dados
        if not Connected then //Caso o componente Conexao não esteja conectado ao BD

            Connected := True;
              Close;
              CommandText :=  'SELECT DISTINCT ' +
                            'END_BAIRCOD, END_NOME, END_CEP ' +
                            'FROM TBENDERECO ' +
                            'WHERE END_NOME ' +
                            'In ( ' +
                            'SELECT END_NOME FROM TBENDERECO WHERE END_NOME=' +quotedstr(CEP_CHECK)+ 'GROUP BY END_NOME HAVING Count(*) > 1) ' +
                            'ORDER BY END_NOME';
              Open;
              if not IsEmpty then
                Result := TRUE
              else
                Result := FALSE

      //END do With e fim da condicional que vericifa se o componente "conexao" está conectado ao banco de dados
      end;
//END da Função
end;

//Função que cria as máscaras para os edits especiais
function TfrmPacientes.Mascara(edt: String;str:String):string;
var
  i : integer;
begin
  for i := 1 to Length(edt) do
    begin
     if (str[i] = '9') and not (edt[i] in ['0'..'9']) and (Length(edt)=Length(str)+1) then
        delete(edt,i,1);
     if (str[i] <> '9') and (edt[i] in ['0'..'9']) then
        insert(str[i],edt, i);
    end;
      result := edt;
end;
end.



Se puderem ajudar ficarei grato.
Diego Varejão

Diego Varejão

Curtidas 0
POSTAR