Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas com meu sistema Delphi ( banco )


Silva_henry

Pergunta

Olá pessoal.

já se faz 2 dias que estou com um problema aqui e não consegui resolver,

espero que eu consiga suporte neste forum.Estão de parabéns pelo conteúdo!

Seguinte...

Tenho um sistema recém programado ( em fase de testes ) feito em Delphi 2007 for win32.

Uso o banco de dados FireBird.

Na estação que fiz o desenvolvimento ( Windows Vista ),o sistema esta rodando perfeitamente.

Estou tentando fazer este sistema rodar num computador com windows 98,como devo proceder ?

já joguei os arquivos do sistema nesta estação ( win98 ),banco de dados e etc.

Registrei a midas.dll,dbexpint.dll,e inclusive uma DLL que estava pedindo quando eu executava

o aplicativo no windows 98,esta dll estava dentro da pasta BIN do CODEGEAR/delphi2007.

já instalei o driver de ODBC do firebird também.E la no painel de controle/ODBC,eu consegui testar a conexão

com o banco e funciona a conexão é bem sucedida.

O Ibexpert também reconhece o banco.

O arquivo " bancoFB.ini " que é o arquivo de paramentros de configuração do banco, também esta apontando para o local correto.

Enfim,testei tudo,mas meu aplicativo NÃO CONECTA AO BANCO DE DADOS,não se comunica.

Quando eu abro o executavel dele,ele me retorna uma mensagem de erro estranha : "\/. .Meu aplicativo ameaça de abrir e depois fecha logo em seguida.

alguém tem idéia a que se refere esta mensagem de erro ? >> "\/. <<

Qual o procedimento normal para instalar o software no windows98.Sera que errei na configuração do ODBC,já que foi a

primeira vez que fiz isto ?

Obrigado

Qualquer dica vai me ajudar muito

Abraços

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá novamente.

Fiz muitas algumas alterações no sistema,e compilei novamente.Agora ele parece estar mais de meu gosto.

Fui testar no Windows 98,e ele me retornu o seguinte erro:

Cannot find connection files from directory ( C:\Ebara ) or the system registry

(\Software\Borland\BDS\5.0\dbExpress).

Abaixo segue meu DataModulo:
unit DataModulo;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Db, DBTables, FMTBcd, DBXpress, SqlExpr, Provider, DBClient, WideStrings;

type
  TModulo = class(TDataModule)
    conexao: TSQLConnection;
    sql_tmp: TSQLQuery;
    sql_log: TSQLQuery;
    cds_log: TClientDataSet;
    dsp_log: TDataSetProvider;
    ds_log: TDataSource;
    SQL_usuario: TSQLQuery;
    CDS_usuario: TClientDataSet;
    DSP_usuario: TDataSetProvider;
    DS_usuario: TDataSource;
    SQL_bomba: TSQLQuery;
    CDS_bomba: TClientDataSet;
    DSP_bomba: TDataSetProvider;
    DS_bomba: TDataSource;
    SQL_motor: TSQLQuery;
    CDS_motor: TClientDataSet;
    DSP_motor: TDataSetProvider;
    DS_motor: TDataSource;
    SQL_clientes: TSQLQuery;
    CDS_clientes: TClientDataSet;
    DSP_Clientes: TDataSetProvider;
    DS_clientes: TDataSource;
    SQL_clientesCOD_EMITENTE: TIntegerField;
    SQL_clientesNOME_EMITENTE: TStringField;
    SQL_clientesDATA_INCLUSAO: TDateField;
    SQL_clientesREGISTRANTE: TStringField;
    CDS_clientesCOD_EMITENTE: TIntegerField;
    CDS_clientesNOME_EMITENTE: TStringField;
    CDS_clientesDATA_INCLUSAO: TDateField;
    CDS_clientesREGISTRANTE: TStringField;
    sql_logUSER_LOG: TStringField;
    sql_logID_LOG: TStringField;
    sql_logSIST_LOG: TStringField;
    sql_logDATA_LOG: TDateField;
    sql_logTIME_LOG: TTimeField;
    sql_logACAO_LOG: TStringField;
    sql_logHORA_FIM: TTimeField;
    sql_logDATA_FIM: TDateField;
    sql_logPC_LOG: TStringField;
    sql_logUSUARIO: TStringField;
    cds_logUSER_LOG: TStringField;
    cds_logID_LOG: TStringField;
    cds_logSIST_LOG: TStringField;
    cds_logDATA_LOG: TDateField;
    cds_logTIME_LOG: TTimeField;
    cds_logACAO_LOG: TStringField;
    cds_logHORA_FIM: TTimeField;
    cds_logDATA_FIM: TDateField;
    cds_logPC_LOG: TStringField;
    cds_logUSUARIO: TStringField;
    SQL_usuarioN_REG: TIntegerField;
    SQL_usuarioNOME_USER: TStringField;
    SQL_usuarioSTATUS_USER: TIntegerField;
    SQL_usuarioSENHA_USER: TStringField;
    CDS_usuarioN_REG: TIntegerField;
    CDS_usuarioNOME_USER: TStringField;
    CDS_usuarioSTATUS_USER: TIntegerField;
    CDS_usuarioSENHA_USER: TStringField;
    procedure ModuloCreate(Sender: TObject);
    procedure CDS_usuarioAfterDelete(DataSet: TDataSet);
    procedure CDS_usuarioAfterInsert(DataSet: TDataSet);
    procedure CDS_usuarioAfterPost(DataSet: TDataSet);
    procedure CDS_usuarioReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
    procedure CDS_bombaAfterDelete(DataSet: TDataSet);
    procedure CDS_bombaAfterPost(DataSet: TDataSet);
    procedure CDS_bombaAfterInsert(DataSet: TDataSet);
    procedure CDS_bombaReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
    procedure CDS_motorAfterInsert(DataSet: TDataSet);
    procedure CDS_motorReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
    procedure CDS_clientesAfterDelete(DataSet: TDataSet);
    procedure CDS_motorAfterPost(DataSet: TDataSet);
    procedure CDS_clientesAfterPost(DataSet: TDataSet);
    procedure CDS_clientesAfterInsert(DataSet: TDataSet);
    procedure CDS_clientesReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
    procedure cds_logAfterDelete(DataSet: TDataSet);
    procedure cds_logAfterPost(DataSet: TDataSet);
    procedure cds_logAfterInsert(DataSet: TDataSet);
    procedure cds_logReconcileError(DataSet: TCustomClientDataSet;
      E: EReconcileError; UpdateKind: TUpdateKind;
      var Action: TReconcileAction);
    procedure CDS_motorAfterDelete(DataSet: TDataSet);
  private
    { Private declarations }

  public
    { Public declarations }
    vid_sistema: string;
    Procedure GravaLog (acao: string; op: integer);
    function  Getcomputer : string;
  end;

var
  Modulo: TModulo;
  V_Peca: Real;
  procedure Atualizar(tabela:TdataSet);
  procedure GeraNewID(tabela:TdataSet);


implementation

{$R *.DFM}

procedure Atualizar (tabela: TdataSet);
begin
  if TClientDataSet(tabela).ApplyUpdates(0) > 0 then
      ShowMessage('Erro na Gravação em : '+tabela.name);
end;


procedure TModulo.ModuloCreate(Sender: TObject);
begin

//-------------- CONEXAO BANCO -----------------

    conexao.Close;    // fecha BD

// ** Carrega a configuracao da conexao com o BD **
 if not FileExists('bancofb.ini') then
    begin
      MessageDlg('Arquivo de configuraçao não encontrado: ' + 'bancofb.ini.',mtConfirmation,[mbcancel],0);
      application.Terminate;
    end;

  try
    conexao.Close;
    conexao.LoadParamsFromIniFile('bancofb.ini');
    conexao.open;
  except
 //    raise Exception.create('Erro ao conectar o banco de dados');
     Application.HandleException(Application);
     application.Terminate;
  end;

// -------------- abre as tabelas do banco ----------------------
  cds_usuario.Open;
  cds_log.Open;
  cds_clientes.Open;

  sql_usuario.Open;
  sql_log.open;
  sql_clientes.Open;


// ----------- cria variavel publica da sessa iniciada --------
//--------- Log de entrada ------------- //
  vid_sistema := Formatdatetime('ddmmyyyyhhnnss',now); // data e hora que entrou...
end;

procedure GeraNewID (tabela: TdataSet);
var newid: integer; sql1, nome_id : String;
begin

if tabela.State in [dsinsert] then
   begin

      nome_id := 'GEN_' + copy(tabela.Name,5,length(tabela.name)) + '_ID';
      nome_id := UPPERCASE(nome_id);

      // monta sql para os arquivos.
      sql1 := 'SELECT GEN_ID (' +  nome_id + ',1) FROM RDB$GENERATORS where RDB$GENERATOR_NAME = ' + QuotedStr(nome_id);
      modulo.sql_tmp.Close;
      modulo.sql_tmp.SQL.Text := sql1;
      modulo.sql_tmp.Open;
      newid := modulo.SQL_tmp.Fields[0].AsInteger;

      // atribui o proximo codigo ao campo do arquivo selecionado.

      if (nome_id  = 'GEN_USUARIO_ID')     then modulo.CDS_usuarioN_REG.Value := newid;
   end;

end;

procedure TModulo.CDS_bombaAfterDelete(DataSet: TDataSet);
begin
// --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;

procedure TModulo.CDS_bombaAfterInsert(DataSet: TDataSet);
begin
   GeraNewId(DataSet);
end;

procedure TModulo.CDS_bombaAfterPost(DataSet: TDataSet);
begin
// --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;

procedure TModulo.CDS_bombaReconcileError(DataSet: TCustomClientDataSet;
  E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
    ShowMessage(E.Message);
end;

procedure TModulo.CDS_clientesAfterDelete(DataSet: TDataSet);
begin
// --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;


procedure TModulo.CDS_clientesAfterInsert(DataSet: TDataSet);
begin
  GeraNewId(DataSet);
end;

procedure TModulo.CDS_clientesAfterPost(DataSet: TDataSet);
begin
// --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;

procedure TModulo.CDS_clientesReconcileError(DataSet: TCustomClientDataSet;
  E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  ShowMessage(E.Message);
end;

procedure TModulo.cds_logAfterDelete(DataSet: TDataSet);
begin
 // --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;



procedure TModulo.cds_logAfterInsert(DataSet: TDataSet);
begin
  GeraNewId(DataSet);
end;

procedure TModulo.cds_logAfterPost(DataSet: TDataSet);
begin
// --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;

procedure TModulo.cds_logReconcileError(DataSet: TCustomClientDataSet;
  E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  ShowMessage(E.Message);
end;

procedure TModulo.CDS_motorAfterDelete(DataSet: TDataSet);
begin
// --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;

procedure TModulo.CDS_motorAfterInsert(DataSet: TDataSet);
begin
  GeraNewId(DataSet);
end;

procedure TModulo.CDS_motorAfterPost(DataSet: TDataSet);
begin
// --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;

procedure TModulo.CDS_motorReconcileError(DataSet: TCustomClientDataSet;
  E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
   ShowMessage(E.Message);
end;

procedure TModulo.CDS_usuarioAfterDelete(DataSet: TDataSet);
begin
 // --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;

function TModulo.Getcomputer : string;
var
  c: array[0..127] of Char; computer: string;  sz: dword;
begin
  sz := SizeOf(c);
  GetComputerName(c, sz);
  computer := c;
  result := computer;
end;

Procedure TModulo.GravaLog (acao: string; op:integer);
begin
  modulo.sql_tmp.close;
  modulo.sql_tmp.SQL.Clear;
  if op = 1 then
     begin
       modulo.sql_tmp.sql.Add ('INSERT INTO LOG (USER_LOG, ID_LOG, DATA_LOG, TIME_LOG, ACAO_LOG, SIST_LOG, USUARIO)');
       modulo.sql_tmp.sql.add (' VALUES (:user, :id, :dt, :tt, :tacao, :sist, :usuario)');
       modulo.sql_tmp.Params[0].AsString := GetComputer;
       modulo.sql_tmp.Params[1].AsString := vid_sistema;
       modulo.sql_tmp.Params[2].AsDate   := Date;
       modulo.sql_tmp.Params[3].Astime   := Time;
       modulo.sql_tmp.Params[4].AsString := acao;
       modulo.sql_tmp.Params[5].AsString := 'EBARA';
       modulo.sql_tmp.Params[6].AsString := modulo.cds_usuarioNOME_USER.value;
     end
   else
     begin
       modulo.sql_tmp.sql.Add ('UPDATE LOG SET DATA_FIM = :xdt, HORA_FIM = :tt, ACAO_LOG = :ac ');
       modulo.sql_tmp.sql.Add (' WHERE ID_LOG = :id');
       modulo.sql_tmp.Params[0].AsDate   := Date;
       modulo.sql_tmp.Params[1].Astime   := Time;
       modulo.sql_tmp.Params[2].AsString := acao;
       modulo.sql_tmp.Params[3].AsString := vid_sistema;
     end;

  modulo.sql_tmp.ExecSQL;
end;


procedure TModulo.CDS_usuarioAfterPost(DataSet: TDataSet);
begin
// --- Utilizado por todas as tabelas do banco --
   Atualizar(DataSet);
end;

procedure TModulo.CDS_usuarioAfterInsert(DataSet: TDataSet);
begin
  GeraNewId(DataSet);
end;

procedure TModulo.CDS_usuarioReconcileError(DataSet: TCustomClientDataSet;
  E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
   ShowMessage(E.Message);
end;

end.

Abaixo meu arquivo que coloco no windows 98 para conectar ao Windows 98:

BancoFB.ini

[iBConnection]

DriverName=Interbase

Database=localhost:C:\FD\Ebara\arq\DBebara.FDB

RoleName=RoleName

User_Name=sysdba

Password=masterkey

ServerCharSet=

SQLDialect=3

ErrorResourceFile=

LocaleCode=0000

BlobSize=-1

CommitRetain=False

WaitOnLocks=True

Interbase TransIsolation=ReadCommited

Trim Char=False

Alguma idéia ???

Abraços

Editado por Silva_henry
Link para o comentário
Compartilhar em outros sites

  • 0
Cannot find connection files from directory ( C:\Ebara ) or the system registry

(\Software\Borland\BDS\5.0\dbExpress).

Não pode achar arquivos de conexão para o diretório (C:\Ebara) ou o registro de sistema

(\Software\Borland\BDS\5.0\dbExpress).

Abaixo meu arquivo que coloco no windows 98 para conectar ao Windows 98:

BancoFB.ini

[iBConnection]

DriverName=Interbase

Database=localhost:C:\FD\Ebara\arq\DBebara.FDB /// veja se este caminho esta correto

RoleName=RoleName

User_Name=sysdba

Password=masterkey

ServerCharSet=

SQLDialect=3

ErrorResourceFile=

LocaleCode=0000

BlobSize=-1

CommitRetain=False

WaitOnLocks=True

Interbase TransIsolation=ReadCommited

Trim Char=False

OBS: Faça um teste de conexão direta com o banco de dados sem ser pelo prorama e veja se consegue se contectar ... se caso afirmativo veja o caminho da conexão.

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...