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

(Resolvido) Como Criar Arquivo Patch...


robinhocne

Pergunta

18 respostass a esta questão

Posts Recomendados

  • 0
FireBird e Interbase são parecidos . olhe o segundo post.

Eu fiz do jeito que estava no segundo post mas tá dando erros:

procedure Tfrmprincipal.FormActivate(Sender: TObject);
var i : integer; num : real;
begin
   if FrmPrincipal.DbaIza.Connected = false then
     FrmPrincipal.DbaIza.Connected := true;
   if not FrmPrincipal.DbaIza.Active then
     FrmPrincipal.DbaIza.Active := true;
end;

end.
e
.....
  var Caminho : TextFile;
    Line : string;

begin
  Application.Initialize;
  Application.CreateForm(Tdtmiza, dtmiza);
  Application.CreateForm(Tfrmprincipal, frmprincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  Application.CreateForm(TFrmSplash, FrmSplash);
  FrmSplash.show; // exibe a tela FrmSplash
  FrmSplash.Refresh; // dá um refresh na tela
  sleep(0000); // aguarda 02 segundo - incluir na unit o SysUtils na Uses
  FrmSplash.Release; // Elimina a tela da memoria
  FrmSplash := nil; // anula a referencia ao ponteiro do objeto
  //FrmLogin.ShowModal;

  AssignFile(Caminho, 'C:\cfc\Net.Txt');  // Diretorio onde foi salvo o arquivo Net.txt
  Reset(Caminho);
  while not EOF(Caminho) do
     begin
       ReadLn(Caminho, Line);
       FrmPrincipal.FdtmIza.DatabaseName := Line;
     end;
  CloseFile(Caminho);

  Application.Run;

Dá esses erros.

Build

[Error]fprincipal.pas(180): Undeclared identifier: 'DbaIza'

[Error] fprincipal.pas(182): Undeclared identifier: 'DbaIza'

[Error] fprincipal.pas(189): Statement expected but end of file found

[Fatal Error] sistemacfc.dpr(45): Could not compile used unit 'fprincipal.pas'

O Meu banco de dados é ligado com um datamodule, no datamodule tenho um IBDataBase, IBQuery e IBTransaction.

Link para o comentário
Compartilhar em outros sites

  • 0

Vaos aos erros:

Build

[Error]fprincipal.pas(180): Undeclared identifier: 'DbaIza'

[Error] fprincipal.pas(182): Undeclared identifier: 'DbaIza'

[Error] fprincipal.pas(189): Statement expected but end of file found

[Fatal Error] sistemacfc.dpr(45): Could not compile used unit 'fprincipal.pas'

Tenta essas mudanças:

procedure Tfprincipal.FormActivate(Sender: TObject);
var i : integer; num : real;
begin
   if FrmPrincipal.DbaIza.Connected = false then
     FrmPrincipal.DbaIza.Connected := true;
   if not FrmPrincipal.DbaIza.Active then
     FrmPrincipal.DbaIza.Active := true;
end;


[Error] fprincipal.pas(189): Statement expected but end of file found  ( senteça esperada e end econtrado )


//  tirar o end.
.....
  var Caminho : TextFile;
    Line : string;

begin
  Application.Initialize;
  Application.CreateForm(Tdtmiza, dtmiza);
  Application.CreateForm(Tfrmprincipal, frmprincipal);
  Application.CreateForm(TFrmLogin, FrmLogin);
  Application.CreateForm(TFrmSplash, FrmSplash);
  FrmSplash.show; // exibe a tela FrmSplash
  FrmSplash.Refresh; // dá um refresh na tela
  sleep(0000); // aguarda 02 segundo - incluir na unit o SysUtils na Uses
  FrmSplash.Release; // Elimina a tela da memoria
  FrmSplash := nil; // anula a referencia ao ponteiro do objeto
  //FrmLogin.ShowModal;

  AssignFile(Caminho, 'C:\cfc\Net.Txt');  // Diretorio onde foi salvo o arquivo Net.txt
  Reset(Caminho);
  while not EOF(Caminho) do
     begin
       ReadLn(Caminho, Line);
       FrmPrincipal.FdtmIza.IBDatabase1.DatabaseName := Line;  //  faltou o IBDatabase1 ( a não ser que FdtmIza seja o IBDatabase1, neste caso estaria correto )
     end;
  CloseFile(Caminho);

  Application.Run;

[Error]fprincipal.pas(180): Undeclared identifier: 'DbaIza'

[Error] fprincipal.pas(182): Undeclared identifier: 'DbaIza'

Identificador não declarado: 'DbaIza'

Este erro esta no seu form fprincipal e não neste modulo, verifique.

Link para o comentário
Compartilhar em outros sites

  • 0

Vai ai as alterações no codigo:

unit FPrincipal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, Menus;

type
  TFrmPrincipal = class(TForm)
    MainMenu1: TMainMenu;
    Teste1: TMenuItem;
    SpbTeste: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure FormActivate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmPrincipal: TFrmPrincipal;
  vcpo, vvlr : tstringlist;
  retorno : string;

implementation

{$R *.dfm}

Uses FCadTeste, FDtmTeste;


procedure TFrmPrincipal.FormCreate(Sender: TObject);
begin
   Vcpo := tstringlist.Create;
   Vvlr := tstringlist.create;
end;




procedure TFrmPrincipal.FormClick(Sender: TObject);
procedure criaform ( form : tformclass);
   begin
      with form.Create(application) do
         try
            showModal;
         finally
            free;
         end;
   end;
begin
   if (sender = Teste1) then criaform (TFrmTeste);
   if (sender = SpbTeste) then criaform (TFrmTeste);
end;



procedure TFrmPrincipal.FormActivate(Sender: TObject);
var i : integer; num : real;
begin
   if DtmTeste.DbaTeste.Connected = false then
      DtmTeste.DbaTeste.Connected := true;
   if not DtmTeste.TrcTeste.Active then
     DtmTeste.TrcTeste.Active := true;
end;

END.
program Teste;

uses
  Forms,
  FPrincipal in 'FPrincipal.pas' {FrmPrincipal},
  Funcoes in 'Funcoes.pas',
  FDtmTeste in 'FDtmTeste.pas' {DtmTeste: TDataModule},
  FCadTeste in 'FCadTeste.pas' {FrmTeste};

{$R *.res}

var Caminho : TextFile;
    Line : string;

begin
  Application.Initialize;
  Application.CreateForm(TFrmPrincipal, FrmPrincipal);
  Application.CreateForm(TDtmTeste, DtmTeste);
  Application.CreateForm(TFrmTeste, FrmTeste);

    AssignFile(Caminho, 'C:\cfc\Net.Txt');
  Reset(Caminho);
  while not EOF(Caminho) do
     begin
       ReadLn(Caminho, Line);
       FdtmTeste.DtmTeste.DbaTeste.DatabaseName := Line;
     end;
  CloseFile(Caminho);

  Application.Run;
end.
unit FDtmTeste;

interface

uses
  SysUtils, Classes, DB, IBCustomDataSet, IBQuery, IBDatabase;

type
  TDtmTeste = class(TDataModule)
    DbaTeste: TIBDatabase;
    TrcTeste: TIBTransaction;
    QryTeste: TIBQuery;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DtmTeste: TDtmTeste;

implementation

{$R *.dfm}

end.

OBS: agora com o bloco de notas voce cria o arquivo com o nome Net.txt e coloque nele o caminho para o seu banco de dados

aqui eu tive que usar assim:

C:\Delphi5\Robinho\Teste\Teste\TESTE.GDB ( modifique o caminho para o seu banco de dados )

salve o arquivo na pasta que voce definiu :

AssignFile(Caminho, 'C:\cfc\Net.Txt');

Testei aqui ... funcionando ok .... abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Pois eu fiz da maneiro que você adcionou no post, mas o que eu quero e fiz foi testar em outra maquina que não tinha o delphi, então copiei o exe, banco de dados e o arquivo net.txt, ai ele dá erro.

Se voce foi testar em outra maquina, essa maquina no minimo tem que ter o interbase ou firebird instalado, caso contrario vai dar erro.

OBS: os codigos do jeito que estão no post funcionam corretamente sem erro... se na sua maquina tem instalado o iterbase não vai dar erro.

Link para o comentário
Compartilhar em outros sites

  • 0
Pois eu fiz da maneiro que você adcionou no post, mas o que eu quero e fiz foi testar em outra maquina que não tinha o delphi, então copiei o exe, banco de dados e o arquivo net.txt, ai ele dá erro.

Se voce foi testar em outra maquina, essa maquina no minimo tem que ter o interbase ou firebird instalado, caso contrario vai dar erro.

OBS: os codigos do jeito que estão no post funcionam corretamente sem erro... se na sua maquina tem instalado o iterbase não vai dar erro.

Ae deu certo, instalei o Firebird e tudo ocorreu certo.

Resolvido

Pois eu fiz da maneiro que você adcionou no post, mas o que eu quero e fiz foi testar em outra maquina que não tinha o delphi, então copiei o exe, banco de dados e o arquivo net.txt, ai ele dá erro.

Se voce foi testar em outra maquina, essa maquina no minimo tem que ter o interbase ou firebird instalado, caso contrario vai dar erro.

OBS: os codigos do jeito que estão no post funcionam corretamente sem erro... se na sua maquina tem instalado o iterbase não vai dar erro.

Ae deu certo, instalei o Firebird e tudo ocorreu certo.

Resolvido

Cara agora outra coisa, você poderia me indicar um instalador para que possa já instalar o firebird e o programa já no disco certo e pasta?

Link para o comentário
Compartilhar em outros sites

  • 0
voce pode usar o InstallShield Express que acompanha o delphi

neste endereço tem mais informações a respeito:

http://www.activedelphi.com.br/modules.php...icle&sid=10

Cara to seguindo pela essa dica mas nato to entendendo esta parte onde eu faco isso?

Você deve selecionar, na janela superior, o diretório onde criou o programa, C:\TCBank . Na janela inferior, dê um clique com o botão direito do mouse sobre Destination Computer e selecione a opção Show Predifined Folders, escolhendo o diretório [ Installdir]. O diretório de instalação é criado abaixo de Destination Computer. No quadro superior direito, selecione os arquivos TCBank.exe, TCBank.GDB, arrastando-os para o quadro inferior, no diretório criado.

Link para o comentário
Compartilhar em outros sites

  • 0

Você deve selecionar, na janela superior, o diretório onde criou o programa, C:\TCBank . Na janela inferior, dê um clique com o botão direito do mouse sobre Destination Computer e selecione a opção Show Predifined Folders, escolhendo o diretório [ Installdir]. O diretório de instalação é criado abaixo de Destination Computer. No quadro superior direito, selecione os arquivos TCBank.exe, TCBank.GDB, arrastando-os para o quadro inferior, no diretório criado.

Isto refere-se apenas ao exemplo que ele esta mostrando .... os caminhos, diretorios, arquivos, etc .. é voce que tem que definir para o seu projeto .... voce deve seguir o exemplo, mas trocando para o seu projeto.

Link para o comentário
Compartilhar em outros sites

  • 0
Pois eu fiz da maneiro que você adcionou no post, mas o que eu quero e fiz foi testar em outra maquina que não tinha o delphi, então copiei o exe, banco de dados e o arquivo net.txt, ai ele dá erro.

Se voce foi testar em outra maquina, essa maquina no minimo tem que ter o interbase ou firebird instalado, caso contrario vai dar erro.

Jhonas, complementando a informação.

Se as demais máquinas que vão acessar o banco, estiverem na rede, não há necessidade da instalação do gerenciador do banco nelas. Na verdade será necessário apenas instalar junto com o programa as DLL's:

- para o Firebird -> FBClient.dll (localizada na pasta BIN de instalação do banco no servidor)

- para o Interbase -> GDS32.dll (esta eu não estou certo da localização, mas se não estiver numa pasta similar, provavelmente estará pasta System32, também do servidor).

Obs.: na instalação do Firebird, há uma opção que permite a "criação"(para fins de compatibilidade) da DLL GDS32.dll e sua cópia para a pasta System32 do servidor.

Estas dll's deverão ser inclusas na sua instalação e copiadas para a pasta SYSTEM32 da máquina client.

Link para o comentário
Compartilhar em outros sites

  • 0
  • 0

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,3k
×
×
  • Criar Novo...