Jump to content
Fórum Script Brasil
  • 0

(Resolvido) Como Criar Arquivo Patch...


robinhocne
 Share

Question

18 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

  • 0
  • 0

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...