Problema com campo Required

Delphi

13/12/2011

Estou com um problema.
Estou fazendo uma tela que faz a transferência de dados, ela tanto importa com exporta de arquivos txt e xls de qualquer tabela que o sistema esteja conectado.
O meu problema é quando seleciono a tabelas em um combobox e no onchange eu faço uma verificação se o campo é “required” para deixá-lo em um Stringlist.
Na minha máquina e algumas outras o sistema roda normalmente, mas tem algumas máquinas que não funciona, ele passa como se o campo estivesse “required = False”.
Estou usando para conexão com o banco:
sqlDataSet
DataSetProvider
ClientDataSet
Passo a consulta para eles em tempo de execução.
Banco Firebird 2.1

 
procedure TfrmTransfereDados.cbxTabelasChange(Sender: TObject);
var
  vlI, vlLinha: Integer;
begin
 gbxVisualizacaoDados.Collapsed := True;
  if cbxTabelas.ItemIndex <> -1 then
    begin
      lbxDisponiveis.Items.Clear;
      for vlI := 0 to stgConfigCampos.ColCount -1  do
        for vlLinha := 1 to stgConfigCampos.RowCount do
          stgConfigCampos.Cells[vlI, vlLinha]     := ;
      for vlI := 0 to stgExemplo.ColCount -1 do
        for vlLinha := 0 to stgExemplo.RowCount -1 do
          stgExemplo.Cells[vlI, vlLinha]          := ;
      stgConfigCampos.RowCount                    := 2;
      stgExemplo.ColCount                         := 2;
      stgExemplo.RowCount                         := 2;
      
      with TClientDataSetFre(dsativo.DataSet) do
        begin
          Close;
          Active                                  := False;
          ReadOnly                                := False;
          Fields.Clear;
          //FieldDefs.Clear;
          IndexDefs.Clear;
          IndexName                               := EmptyStr;
          Consulta.Tabelas                        := cbxTabelas.Text;
          AtivaConsulta                           := True;
          Active                                  := True;
          Open;
          //FieldList.Update;
          //FieldDefs.Update;
          vlLinha                                 := 0;
          ProgressBar.Max                         := FieldCount -1;  
          pnlFundo.Enabled := False;
          for vlI := 0 to FieldCount - 1 do
            begin
              if Fields[vlI].Required then
                begin
                  if ((stgConfigCampos.RowCount = 2) and (vlLinha = 0)) then
                    begin
                      TransfereGrid(Fields[vlI], 1);
                      vlLinha                     := vlLinha + 1;
                    end
                  else
                    TransfereGrid(Fields[vlI], stgConfigCampos.RowCount);
                end
              else
                begin
                  lbxDisponiveis.Items.Add(Fields[vlI].DisplayName);
                end;
               ProgressBar.Position := vlI;
               Application.ProcessMessages;
            end;
        end;
    end;
End;
Tiago Soares

Tiago Soares

Curtidas 0

Respostas

Nicassio

Nicassio

13/12/2011

Tiago da uma olhada na versão da midas, compara a que esta na maquina que não funciona com a de uma maquina que funciona, lembro que tive muitos problemas por causa disso.
GOSTEI 0
Tiago Soares

Tiago Soares

13/12/2011

Tiago da uma olhada na versão da midas, compara a que esta na maquina que não funciona com a de uma maquina que funciona, lembro que tive muitos problemas por causa disso.


Obrigado pela ajuda eu atualizei os driver do DBX e funcionou nas outras maquinas.
vlww
GOSTEI 0
Wilson Junior

Wilson Junior

13/12/2011

Não esqueça de finalizar os tópicos.
GOSTEI 0
POSTAR