VDLR Postado Novembro 20, 2006 Denunciar Share Postado Novembro 20, 2006 Pessoal peguei um artigo na internet para conectar o sistema através do INI, e tentei adaptar ao meu sistema, só que estou recebendo diversos erros que não seu como corrigir, alguém pode me ajudar.Os códigos são estes:procedure Gravar_Configuracao(Url, Usr, pws : String); var Banco : TIniFile; Begin Try SetCurrentDir(ExtractFilePath(Application.ExeName)); Banco := TIniFile.Create(GetCurrentDir + '\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB.ini'); Banco.WriteString('DATABASE','\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB',URL); Banco.WriteString('DATABASE','SYSDBA',USR); Banco.WriteString('DATABASE','masterkey',PWS); Finnaly Banco.Free; End; End; procedure Ler_Configuracao(var Url: String; var Usr: String; var pws: String); Begin Try Banco := TIniFile.create(GetCurrentDir+'\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB.ini'); URL := Banco.WriteString('DATABASE','\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB',URL); USR := Banco.WriteString('DATABASE','SYSDBA',USR); PWS := Banco.WriteString('DATABASE','masterkey',PWS); Finnaly Banco.Free; End; End; procedure TFRlembrdoc.FormCreate(Sender: TObject); begin SetCurrentDir(ExtractFilePath(Application.ExeName)); IBContrSMS.Close; Ler_Configuracao(Url,Usr,Pwd); IBContrSMS.Params.Add('user_name='+USR); IBContrSMS.params.add('password ='+PWD); IBContrSMS.DatabaseName := Url; IBContrSMS.Open; end;Os erros são este:[Error] LembrDoc.pas(114): Undeclared identifier: 'Finnaly'[Error] LembrDoc.pas(115): Missing operator or semicolon[Error] LembrDoc.pas(116): EXCEPT or FINALLY expected[Error] LembrDoc.pas(122): Undeclared identifier: 'Banco'[Error] LembrDoc.pas(123): Missing operator or semicolon[Error] LembrDoc.pas(124): Missing operator or semicolon[Error] LembrDoc.pas(125): Missing operator or semicolon[Error] LembrDoc.pas(126): Undeclared identifier: 'Finnaly'[Error] LembrDoc.pas(127): Missing operator or semicolon[Error] LembrDoc.pas(128): EXCEPT or FINALLY expected[Error] LembrDoc.pas(244): Undeclared identifier: 'Url'[Error] LembrDoc.pas(244): Types of actual and formal var parameters must be identical[Fatal Error] LembreteDoc.dpr(5): Could not compile used unit 'LembrDoc.pas'AbraçoValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Novembro 20, 2006 Denunciar Share Postado Novembro 20, 2006 Seu código esta cheio de erros, entre eles , erro de escrita e erro de sintaxe.[Error] LembrDoc.pas(114): Undeclared identifier: 'Finnaly'Nesta linha, troca o Finnaly por finallyLembrando quando você for usar a condição TRY ele tem um END proprioASSIM a sintaxe do TRY éTRY //codiçãoEXCEPT //condiçãoEND; //este end é da condição TRY, ele é obrigatorioouTRY BEGIN //condições //condiçõoes END;EXCEPT BEGIN //condições //condições END;END; //este END é do TRYou, no lugar do EXCEPT você pode usar o FINALLYo código abaixo do EXCEPT só ocorre quando o código dentro dos primeiros BEGIN e END do try da erro ao executar, exemplo:TRY strtoint('aaaa'); // isso vai dar erroEXCEPT showmessage('Não foi possivel transformar!!!')END;Testa esse código fora do delphi, porque se você testar ele com o F9 do delphi o delphi vai retornar o erro pra você. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 22, 2006 Autor Denunciar Share Postado Novembro 22, 2006 Cara, obrigado por sua atenção.Procurei corrigir alguns erros e ver algumas matérias a respeito do INI, e corrigi o código, mas continua dando erro.Não tem como você me apontar os erros ??Como eu testaria esse código fora do delphi ??procedure TFRlembrdoc.Gravar_Configuracao(Url, Usr, pws : String); var Banco : TIniFile; Begin Try SetCurrentDir(ExtractFilePath(Application.ExeName)); Banco := TIniFile.Create(GetCurrentDir + '\database.ini'); Banco.WriteString('DATABASE','\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB',URL); Banco.WriteString('DATABASE','SYSDBA',USR); Banco.WriteString('DATABASE','masterkey',PWS); Finally Banco.Free; End; End; [code]procedure TFRlembrdoc.Ler_Configuracao(var Banco : TIniFile;var Url: String; var Usr: String; var pws: String); Begin Try Banco := TIniFile.create(GetCurrentDir+'\database.ini'); URL := Banco.WriteString('DATABASE','\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB',URL); USR := Banco.WriteString('DATABASE','SYSDBA',USR); PWS := Banco.WriteString('DATABASE','masterkey',PWS); Finally Banco.Free; End; End; procedure TFRlembrdoc.FormCreate(Sender: TObject); begin SetCurrentDir(ExtractFilePath(Application.ExeName)); IBContrSMS.Close; Ler_Configuracao(Url,Usr,Pws); IBContrSMS.Params.Add('user_name=SYSDBA'+USR); IBContrSMS.params.add('password=masterkey'+PWS); IBContrSMS.DatabaseName := '\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB'+URL; IBContrSMS.Open; end; Os erros são estes[Warning] LembrDoc.pas(117): Variable 'Banco' might not have been initialized[Error] LembrDoc.pas(125): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'[Error] LembrDoc.pas(126): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'[Error] LembrDoc.pas(127): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'[Error] LembrDoc.pas(131): Illegal character in input file: '}' ($7D)[Error] LembrDoc.pas(243): Undeclared identifier: 'Url'[Error] LembrDoc.pas(243): Types of actual and formal var parameters must be identical[Fatal Error] LembreteDoc.dpr(5): Could not compile used unit 'LembrDoc.pas'AbraçosValdecir :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 24, 2006 Autor Denunciar Share Postado Novembro 24, 2006 Pessoal será que não tem como me ajudar com isto ????AbraçoValdecir :( :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 24, 2006 Denunciar Share Postado Novembro 24, 2006 [Warning] LembrDoc.pas(117): Variable 'Banco' might not have been initializedEsta mensagem pode ser ignorada (é apenas uma advertência)[Error] LembrDoc.pas(125): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter' [Error] LembrDoc.pas(126): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter' [Error] LembrDoc.pas(127): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter' [Error] LembrDoc.pas(131): Illegal character in input file: '}' ($7D)Estes erros, você terá que verificar, pois estão numa parte do código que não está postado aqui.[Error] LembrDoc.pas(243): Undeclared identifier: 'Url'A mensagem diz que o identificador Url não está declarado. Não dá para advinhar, já que a unit está com você e não sábe-se o que está em que linha. Mas a linha 243 parece inicialmente se tratar da chamada ao procedimento Ler_Configuracao que você faz no método FormCreate (evento OnCreate do form), já que você passa Url como parâmetro e aparentemente não está declarada globalmente. Mas o erro seguinte:[Error] LembrDoc.pas(243): Types of actual and formal var parameters must be identicalAparentemente descarta isto ou, se for verdade, você declarou as variáveis Usr e Psw diferentes de String(tipo esperado pelo prodedimento).Pessoal será que não tem como me ajudar com isto ????Como vê não dá para resolver erros de compilação virtualmente. Qual sua dificuldade em entender as mensagens e tentar resolvê-las? Observe que sempre ao lado do nome da unit que tem o erro, é apresentado entre parênteses o número (provável) da linha onde o erro ocorre. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 24, 2006 Autor Denunciar Share Postado Novembro 24, 2006 Cara muito obrigado por sua atenção.Estes problemas consegui resolver, só que agora estou recebendo este erro e o sistema não abre.DEBUGGER EXCEPRION NOTIFICATIONProject LembreteDoc.Exe raised exception class EIBClienteError with message'Database name is missing'. Process Stopped. Use step or run to continue.Cara já quebrei a cabeça, mas não consegui resolver. Sou novato em programação estou aprendendo meio na marra, sozinho se vocês tiverem como me dar esta força.A idéia de criar este arquivo INI é para o sistema trabalhar em rede, abaixo esta a Unit inteira será que ajuda.unit LembrDoc;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, IBCustomDataSet, IBTable, IBDatabase, StdCtrls, Grids, DBGrids, Buttons, Registry, IBQuery, IniFiles, ExtCtrls;type TFRlembrdoc = class(TForm) IBContrSMS: TIBDatabase; IBTransaction1: TIBTransaction; TBcaddoc: TIBTable; TBcaddocREG: TIntegerField; TBcaddocDESCRDOC: TIBStringField; TBcaddocORGAOEXP: TIBStringField; TBcaddocDTEXP: TDateField; TBcaddocDTVCTO: TDateField; TBcaddocDTVCTOANT: TDateField; TBcaddocDTAVVCTO: TDateField; TBcaddocDTRENOVACAO: TDateField; TBcaddocDTCAD: TDateField; TBcaddocCADUSUARIO: TIBStringField; TBcaddocALTUSUARIO: TIBStringField; TBcaddocDTALTUSUARIO: TDateField; TBcaddocOBSERVACAO: TIBStringField; DScaddoc: TDataSource; BTiniciarsms: TBitBtn; BTcancelar: TBitBtn; Edit1: TEdit; TBcadequip: TIBTable; TBcadequipREG: TIntegerField; TBcadequipDESCRICAO: TIBStringField; TBcadequipIDENTIFICACAO: TIBStringField; TBcadequipNRATIVOFIXO: TIBStringField; TBcadequipDTCALIBR: TDateField; TBcadequipDTVCTOCALIBR: TDateField; TBcadequipDTAVCALIBR: TDateField; TBcadequipDTVCTOANT: TDateField; TBcadequipDTCADASTRO: TDateField; TBcadequipCADUSUARIO: TIBStringField; TBcadequipALTUSUARIO: TIBStringField; TBcadequipDTALTUSUARIO: TDateField; TBcadequipOBSERVACAO: TIBStringField; TBcadequipFREQCALIBR: TIBStringField; DScadequip: TDataSource; TBcadextintor: TIBTable; TBcadextintorREG: TIntegerField; TBcadextintorDESCRICAO: TIBStringField; TBcadextintorMARCA: TIBStringField; TBcadextintorTIPO: TIBStringField; TBcadextintorNREXTINTOR: TIBStringField; TBcadextintorATIVOFIXO: TIBStringField; TBcadextintorLOCAL: TIBStringField; TBcadextintorABNTNR: TIBStringField; TBcadextintorFOGOCLASSE: TIBStringField; TBcadextintorRECARGA: TDateField; TBcadextintorVCTORECARGA: TDateField; TBcadextintorDTAVRECARGA: TDateField; TBcadextintorVCTOANTRECARGA: TDateField; TBcadextintorTESTEHIDR: TDateField; TBcadextintorVCTOTESTEHIDR: TDateField; TBcadextintorDTAVTESTEHIDR: TDateField; TBcadextintorVCTOANTHIDR: TDateField; TBcadextintorDTCADASTRO: TDateField; TBcadextintorCADUSUARIO: TIBStringField; TBcadextintorALTUSUARIO: TIBStringField; TBcadextintorDTALTUSUARIO: TDateField; TBcadextintorOBSERVACAO: TIBStringField; DScadextintor: TDataSource; GroupBox1: TGroupBox; DBGrid1: TDBGrid; Panel1: TPanel; GroupBox2: TGroupBox; DBGrid2: TDBGrid; GroupBox3: TGroupBox; DBGrid3: TDBGrid; Label1: TLabel; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure BTcancelarClick(Sender: TObject); procedure FormShow(Sender: TObject); procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure BTiniciarsmsClick(Sender: TObject); procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } Procedure CriaStartup(LembreteDoc : String); procedure Gravar_Configuracao(Url, Usr, pws : String); procedure Ler_Configuracao(var Url: String; var Usr: String; var pws: String); end;var FRlembrdoc: TFRlembrdoc;implementationuses TypInfo;{$R *.dfm}procedure TFRlembrdoc.Gravar_Configuracao(Url, Usr, pws : String);var BDSMS : TIniFile;Begin Try SetCurrentDir(ExtractFilePath(Application.ExeName)); BDSMS := TIniFile.Create(GetCurrentDir + '\Database.ini'); BDSMS.WriteString('Database','Local',URL); BDSMS.WriteString('Database','user_name',USR); BDSMS.WriteString('Database','password',PWS); Finally BDSMS.Free; End;End;procedure TFRlembrdoc.Ler_Configuracao(var Url: String; var Usr: String; var pws: String);var BDSMS : TIniFile;Begin Try BDSMS := TIniFile.create(GetCurrentDir+'\Database.ini'); URL := BDSMS.ReadString('Database','\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB',URL); USR := BDSMS.ReadString('Database','SYSDBA',USR); PWS := BDSMS.ReadString('Database','masterkey',PWS); Finally BDSMS.Free; End;End;Procedure TFRlembrdoc.CriaStartup(LembreteDoc : String);var Reg : TRegistry;Begin Reg := TRegistry.Create; Reg.RootKey := HKEY_LOCAL_MACHINE; Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', True); Reg.WriteString(LembreteDoc, '"' + ParamStr(0) + '"'); Reg.CloseKey; Reg.Free;End;procedure TFRlembrdoc.FormClose(Sender: TObject; var Action: TCloseAction);begin TBcaddoc.Close; TBcadequip.Close; TBcadextintor.Close; IBContrSMS.Connected:=False; Action := caFree; FRlembrdoc := NIL;end;procedure TFRlembrdoc.BTcancelarClick(Sender: TObject);begin Application.Terminate;end;procedure TFRlembrdoc.FormShow(Sender: TObject);var iVezes:Byte;Var url,usr,pws : String;begin iVezes := 0; While not IBContrSMS.Connected and (iVezes < 100) do begin try IBContrSMS.Open; except Inc(iVezes); Sleep(400); end; end; if not IBContrSMS.Connected then IBContrSMS.Open; // Força a exceção para ver o erro SetCurrentDir(ExtractFilePath(Application.ExeName)); IBContrSMS.Close; Ler_Configuracao(Url,Usr,pws); IBContrSMS.Params.Add('SYSDBA'+Usr); IBContrSMS.params.add('masterkey'+PWS); IBContrSMS.DatabaseName := '\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB'+URL; IBContrSMS.Open; CriaStartup('LembreteSMS'); Edit1.Text := DateToStr(Date); TBcaddoc.Open; TBcaddoc.IndexFieldNames := 'DTAVVCTO'; TBcaddoc.Filtered:=False; TBcaddoc.Filter:= 'DTAVVCTO <'+QuotedStr(FormatDateTime('MM/dd/yyyy', StrToDate(Edit1.Text))); TBcaddoc.Filtered:=True; TBcadequip.Open; TBcadequip.IndexFieldNames := 'DTAVCALIBR'; TBcadequip.Filtered:=False; TBcadequip.Filter:= 'DTAVCALIBR <'+QuotedStr(FormatDateTime('MM/dd/yyyy', StrToDate(Edit1.Text))); TBcadequip.Filtered:=True; TBcadextintor.Open; TBcadextintor.IndexFieldNames := 'DTAVRECARGA'; TBcadextintor.Filtered:=False; TBcadextintor.Filter:= 'DTAVRECARGA <'+QuotedStr(FormatDateTime('MM/dd/yyyy', StrToDate(Edit1.Text))); TBcadextintor.Filtered:=True; If (TBcaddocDTAVVCTO.Text = '') And (TBcadequipDTAVCALIBR.Text = '') And (TBcadextintorDTAVRECARGA.Text = '') then Application.Terminate;end;procedure TFRlembrdoc.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);begin If TBcaddoc.Fieldbyname('DTAVVCTO').Value<Date then Begin DBGrid1.Canvas.Font.Color := clRed; DBGrid1.DefaultDrawDataCell(Rect, DBGrid1.columns[datacol].field, state); end;end;procedure TFRlembrdoc.BTiniciarsmsClick(Sender: TObject);begin WinExec('C:\VDLR - Controle SMS\Controle SMS\ControleSMS.exe', SW_SHOWNORMAL); FRlembrdoc.Close;end;procedure TFRlembrdoc.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);begin If TBcadequip.Fieldbyname('DTAVCALIBR').Value<Date then Begin DBGrid2.Canvas.Font.Color := clRed; DBGrid2.DefaultDrawDataCell(Rect, DBGrid2.columns[datacol].field, state); end;end;procedure TFRlembrdoc.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);begin if ((TBcadextintor.Fieldbyname('DTAVRECARGA').Value<Date) or (TBcadextintor.Fieldbyname('DTAVTESTEHIDR').Value<Date)) then Begin DBGrid3.Canvas.Font.Color := clRed; DBGrid3.DefaultDrawDataCell(Rect, DBGrid3.columns[datacol].field, state); end;end;procedure TFRlembrdoc.FormCreate(Sender: TObject);Var url,usr,pws : String;begin Gravar_Configuracao(Url,Usr,pws);end;end.AbraçoValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 24, 2006 Denunciar Share Postado Novembro 24, 2006 Vixe!!! :blink: A mensagem 'Database name is missing' acho que é bem clara. Aparentemente não está sendo encontrado o banco de dados ou algo parecido.Na verdade, acredito que você esteja passando "nulo" para o nome do banco ao abrí-lo. Observe:1) no OnCreate do form você chama o Grava_Configuracao, passando as variáveis locais, não inicializadas. Ou seja, não tem nada nelas e, além de tudo, se o arquivo existir, você queima seu conteúdo;2) no evento OnShow do form você, inicialmente, tenta abrir o banco de dados sem ter ainda carregado para ele os parâmetros que você deveria ler do arquivo INI; A seguir, após tentar conectar ao banco (fazendo até 100 tentativas :o), você fecha a conexão, lê as configurações do arquivo e concatena as informações, até onde sei de forma incorreta. Os parâmetros para o banco devem ser:user=<nome usuario>password=<senha>ou seja:IBContrSMS.Params.Add('user='+Usr);IBContrSMS.params.Add('password='+PWS);SYSDBA é o usuário padrão (administrador) do banco de dados IB ou FB;masterkey é a senha padrão para o administrador.Mas, dê também uma olhada na procedure Ler_Configuracao:... URL := BDSMS.ReadString('Database','\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB',URL); USR := BDSMS.ReadString('Database','SYSDBA',USR); PWS := BDSMS.ReadString('Database','masterkey',PWS); ... você está lendo as chaves incorretamente. Voce criou as chaves no arquivo INI com os seguintes nomes: BDSMS.WriteString('Database','Local',URL); BDSMS.WriteString('Database','user_name',USR); BDSMS.WriteString('Database','password',PWS); então, você deveria lê-los assim: URL := BDSMS.ReadString('Database','Local', '\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDB'); USR := BDSMS.ReadString('Database','user_name', 'SYSDBA'); PWS := BDSMS.ReadString('Database','password', 'masterkey'); O segundo parâmetro é o nome da sessão e o terceiro é o valor padrão, caso a chave não seja encontrada. Acho que o procedimento seria, no OnCreate do form, verifica se o arquivo INI existe. Se não existir cria as chaves com valores padrão; Em seguida lê o conteúdo do arquivo; Inicializa os parâmetros da conexão e tenta abrí-la. Não há razão para ficar tentando por tantas vezes. outra coisa, para evitar problemas futuros, utilize corretamente o try...finally no procedimento Gravar_Configuracao, deveria fica assim:... SetCurrentDir(ExtractFilePath(Application.ExeName)); BDSMS := TIniFile.Create(GetCurrentDir + '\Database.ini'); Try BDSMS.WriteString('Database','Local',URL); BDSMS.WriteString('Database','user_name',USR); BDSMS.WriteString('Database','password',PWS); Finally BDSMS.Free; End; ...você está utilizando o Finally para garantir que a memória alocada por BDSMS seja liberada. Certo?! Bom, se você coloca o create dela dentro do Try e ocorre uma exeção no momento da criação, você irá liberar algo que ainda não foi alocado. Esteja atento a esses detalhes. ;) []s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 27, 2006 Autor Denunciar Share Postado Novembro 27, 2006 Micheus, muito obrigado pela atenção.Fiz as correções anotadas por você, só que estou recebendo esta mensagem de erro ao copilar o sistema.DEBUGGER EXCEPRION NOTIFICATIONProject LembreteDoc.Exe raised exception class EIBClienteError with message'DPB Constant (User) is unknown'. Process Stopped. Use step or run to continue.Clicando só no executável recebo esta'DPB Constant (User) is unknown'Logo após esta'Unrecognized Database parameter block'Cara deu usuário desconhecido, estou usando usuário patrão do Interbase.Você saberia me dizer como resolver isto, tem que fazer alguma configuração no Interbase.Como disse sou novato em programação é minha primeira tentativa em rede, pensei que fosse ser mais simples, mas só tem dado pau.Cara me ajuda, parece faltar tão pouco.AbraçosValdecir :( :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 28, 2006 Autor Denunciar Share Postado Novembro 28, 2006 Pessoal desculpa, mas alguém sabe como resolver isto ????AbraçosValdecir :( :( :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 28, 2006 Denunciar Share Postado Novembro 28, 2006 Valdecir, já tinha lido seu post, mas não estava podendo averiguar alguns detalhes.Basicamente, a propriedade Params do seu DataBase deverá ter essas linhas (considerando o usuário padrão):user_name=SYSDBApassword=masterkeyou seja, quando eu coloquei no posta anterior:user=<nome usuario>password=<senha>ou seja:IBContrSMS.Params.Add('user='+Usr);IBContrSMS.params.Add('password='+PWS);Eu cometi um erro, porque afirmei algo que "lembrei de cabeça", e obviamente, agora, vejo que minha cabeça tá meio capenga. :D Observe que coloquei user=, quando deveria ter colocado user_name=, induzindo você ao erro. Esta deve ser a causa dasd mensagens:DEBUGGER EXCEPRION NOTIFICATIONProject LembreteDoc.Exe raised exception class EIBClienteError with message'DPB Constant (User) is unknown'. Process Stopped. Use step or run to continue. e 'DPB Constant (User) is unknown'Desculpe-me.Corrija isto e verifique como fica.[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 29, 2006 Autor Denunciar Share Postado Novembro 29, 2006 Cara fiz a alteração, aquela mensagem parou, só que começou dar algumas de erro no caminho, alterei o caminho para: \\\Phoenix2:\C:\VDLR - Controle SMS\BDados\BDSMS.GDBAgora estou recebendo esta mensagemUnable to complete network request to host ‘’’’Failed to establish a connectionUnknown win 32 error 52Parece que isto não tem solução, quando não é uma coisa e outra.Desculpe a cobrança no postAbraços Valdecir :blink: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 29, 2006 Denunciar Share Postado Novembro 29, 2006 Cara fiz a alteração, aquela mensagem parou, só que começou dar algumas de erro no caminho, alterei o caminho para: \\\Phoenix2:\C:\VDLR - Controle SMS\BDados\BDSMS.GDBAgora estou recebendo esta mensagemUnable to complete network request to host ‘’’’Failed to establish a connectionUnknown win 32 error 52Parece que isto não tem solução, quando não é uma coisa e outra.Desculpe a cobrança no postAbraços Valdecir :blink:Valdecir, acho que é a forma como você está informando o caminho da rede. Se você está realmente informando:\\\Phoenix2:\C:\VDLR - Controle SMS\BDados\BDSMS.GDBacho que o mais correto seria (sem utilizar os dois pontos):\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDBEssa é uma dúvida mais fácil de resolver. Se você tiver acesso a este diretório em design-time, você pode no botãozinho, da propriedade DatabaseName de seu DataBase e localizar o arquivo no local que você está tentando utilizar. Daí não tem erro, você vai estar sabendo como fica o caminho completo (que parece-me será neste último formato).[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 29, 2006 Autor Denunciar Share Postado Novembro 29, 2006 Cara, colocando o caminho desta forma eu recebo esta mensagem.acho que o mais correto seria (sem utilizar os dois pontos):\\Phoenix2\C\VDL - Controle SMS\BDados\BDSMS.GDBI/O error for file “\c\VDLR – ControleSMS\Bdados\BDSMS.GDB’’Error while trying to open fileUnknown Win32 error 3’.Por isso alterei AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 29, 2006 Denunciar Share Postado Novembro 29, 2006 Valdecir, você tentou fazer o que disse antes:Essa é uma dúvida mais fácil de resolver. Se você tiver acesso a este diretório em design-time, você pode no botãozinho, da propriedade DatabaseName de seu DataBase e localizar o arquivo no local que você está tentando utilizar. Daí não tem erro, você vai estar sabendo como fica o caminho completo (que parece-me será neste último formato).Porque se você conseguir selecionar o banco desta forma e ativar sem problemas o database, em design-time, não deverá ter problemas em run-time. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 29, 2006 Autor Denunciar Share Postado Novembro 29, 2006 Micheus eu consigo colocar o caminho, mas quando coloco true em connected da o mesmo erro.Cara isto já deu no saco, não sei mais o que fazer.Abraços Valdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 29, 2006 Denunciar Share Postado Novembro 29, 2006 Micheus eu consigo colocar o caminho, mas quando coloco true em connected da o mesmo erro.Cara isto já deu no saco, não sei mais o que fazer.Abraços ValdecirMas este com certeza é o melhor meio de você tirar as dúvidas. Quando conseguir conectar, resolverá o problema.Será que pode ter a ver com nomes longos. Tipo, será que teria que ser digitado \\Phoenix2\C\VDL-Co~1\BDados\BDSMS.GDB, um caminho DOS - ou algo assim?Já tentou mapear este caminho para uma unidade de rede e utilizá-la? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Novembro 30, 2006 Autor Denunciar Share Postado Novembro 30, 2006 Micheus nunca fiz mapeamento de rede, mas e u enxergo esta máquina da minha normalmente.está complicado não???????AbraçosValdecir :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Novembro 30, 2006 Denunciar Share Postado Novembro 30, 2006 Micheus nunca fiz mapeamento de rede, mas e u enxergo esta máquina da minha normalmente.está complicado não???????AbraçosValdecir :(Já que mais ninguém sugeriu nada, vamos continuar por este caminho. A título de "teste", tente mapear a unidade. Isso siguinifica que você passará a se referir a este caminho como um drive (disco) no seu computador. Pelo caminho que você está utilizando parece que todo o disco C da máquina Phoenix2 está compartilhado, é isto? Se for não é o tipo de coisa mais aconselhável. Normalmente você compartilha apenas uma determinada pasta, assim evita que os usuários façam algum tipo de estrago "sem querer".Mapear unidade de rede não é complicado. Mas se a pasta compartilhada tiver restrições de acesso, só determinado grupo de usuário pode se conectar, daí pode ser um pouco mais chato. Acho que não parece ser o seu caso.Se estiver utilizando Win95 ou Win98 este link (no 2ºtópico - Acessando discos e pastas compartilhados) explica como fazer. Em W2K e XP é similar, então acho que você não terá dificuldades. Tem esse outro link também. A letra da nova unidade você é que escolhe.Só para saber, seu servidor de banco de dados é Interbase(IB) mesmo ou FireBird(FB)? As máquinas em questão estão com que versão de Windows?[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Dezembro 1, 2006 Autor Denunciar Share Postado Dezembro 1, 2006 Micheus, mais uma vez obrigado por sua atenção.O banco e interbase e os Windows são XP.Vou olhar os link de mapeamento e qualquer coisa te faloAbraços Valdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Dezembro 1, 2006 Autor Denunciar Share Postado Dezembro 1, 2006 Micheus, belezaCara, consegui conectar o banco com este caminho no DatabaseName do IBdatabasePhoenix2:\VDLR - Controle SMS\BDados\BDSMS.GDBMas colocando este caminho nas procedures de criar e ler o arquivo INI dá pau, sei lá deve faltar alguma coisa.Mas de qualquer forma já é uma vitória.....AbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Dezembro 1, 2006 Denunciar Share Postado Dezembro 1, 2006 Micheus, belezaCara, consegui conectar o banco com este caminho no DatabaseName do IBdatabasePhoenix2:\VDLR - Controle SMS\BDados\BDSMS.GDBufa!!! :D Depois que você colocou que resolveu deste modo, lembre da tal string de conexão. Tem diferença em acessar com o path ou através de um servidor. Dá uma olhada neste artigo e veja se você consegue clarear as idéias - linkMas colocando este caminho nas procedures de criar e ler o arquivo INI dá pau, sei lá deve faltar alguma coisa.Mas de qualquer forma já é uma vitória.....AbraçosValdecirQue tipo de problema/mensagem... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Dezembro 4, 2006 Autor Denunciar Share Postado Dezembro 4, 2006 Micheus desculpe não responder antes, estou na correria, fim de mês e começo e bravo.A mensagem de erro é a seguinte:Your user name ande password are not definid. Ask your database administrator to set up an InterBase loginNão sei se tem algum erro na formação do arquivo INI.AbraçosValdecir :D Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Dezembro 4, 2006 Denunciar Share Postado Dezembro 4, 2006 Micheus desculpe não responder antes, estou na correria, fim de mês e começo e bravo.A mensagem de erro é a seguinte:Your user name ande password are not definid. Ask your database administrator to set up an InterBase loginNão sei se tem algum erro na formação do arquivo INI.AbraçosValdecir :DJá que você disse (no post anterior) que direto do componente você havia consseguido a conexão, então deve estar ocorrendo algum problema com o usuário e senha que você está adicionando na propriedade Params.Voce tentou depurar o código no momento antes da conexão do database, para certificar-se do conteúdo de Params?[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Dezembro 5, 2006 Autor Denunciar Share Postado Dezembro 5, 2006 Voce tentou depurar o código no momento antes da conexão do database, para certificar-se do conteúdo de Params?Cara como eu faço isso, nunca fiz. Abraços Valdecir :unsure: :( Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Dezembro 5, 2006 Denunciar Share Postado Dezembro 5, 2006 Voce tentou depurar o código no momento antes da conexão do database, para certificar-se do conteúdo de Params?Cara como eu faço isso, nunca fiz. Abraços Valdecir :unsure: :(Na linha do código, onde você ativa a conexão, você tecla F5 (a linha deve ficar vermelha e um ponto vermelho aparece na margem esquerda do editor). Este procedimento adiciona um Break-point (ponto de parada). Quando você executar seu programa (normalmente via F9), ele irá parar nesta linha no momento em que ela estiver para ser executada. Neste momento você estará devolta a IDE do Delphi e poderá utilizar o avaliador de expressões (diálogo Evaluate/Modify). Na caixa Expression você digita o nome variável/componente que você quer verificar/alterar o conteúdo (tem que por o "caminho" completo se ele estiver noutro lugar que não a unit atual - p.e. um datamodule), por exemplo: IBContrSMS.Params.TextDeste modo você conseguirá ver o conteúdo da propriedade params. Observe que esta propriedade é um TStings, então você também poderá ver linha a linha se utilizar IBContrSMS.Params[0], IBContrSMS.Params[1].Este método é o que se utiliza para identificar problemas deste tipo.[]s Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VDLR Postado Dezembro 5, 2006 Autor Denunciar Share Postado Dezembro 5, 2006 Legal, vou fazer isto e te faloAbraçosValdecir Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
VDLR
Pessoal peguei um artigo na internet para conectar o sistema através do INI, e tentei adaptar ao meu sistema, só que estou recebendo diversos erros que não seu como corrigir, alguém pode me ajudar.
Os códigos são estes:
Os erros são este:
[Error] LembrDoc.pas(114): Undeclared identifier: 'Finnaly'
[Error] LembrDoc.pas(115): Missing operator or semicolon
[Error] LembrDoc.pas(116): EXCEPT or FINALLY expected
[Error] LembrDoc.pas(122): Undeclared identifier: 'Banco'
[Error] LembrDoc.pas(123): Missing operator or semicolon
[Error] LembrDoc.pas(124): Missing operator or semicolon
[Error] LembrDoc.pas(125): Missing operator or semicolon
[Error] LembrDoc.pas(126): Undeclared identifier: 'Finnaly'
[Error] LembrDoc.pas(127): Missing operator or semicolon
[Error] LembrDoc.pas(128): EXCEPT or FINALLY expected
[Error] LembrDoc.pas(244): Undeclared identifier: 'Url'
[Error] LembrDoc.pas(244): Types of actual and formal var parameters must be identical
[Fatal Error] LembreteDoc.dpr(5): Could not compile used unit 'LembrDoc.pas'
Abraço
Valdecir
Link para o comentário
Compartilhar em outros sites
31 respostass a esta questão
Posts Recomendados
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.