
Capablanca
Membros-
Total de itens
295 -
Registro em
-
Última visita
Tudo que Capablanca postou
-
Você não disse que está usando o ZeosLib? Pensei que já estivesse usando o ZeosDBO. Em todo caso, o ZeosDBO também dá acesso ao MS Access.
-
Não seria ético eu passar o tutorial para você, pois ele está no site que eu indiquei. Faça seu registro nele (é gratuito), e obtenha o arquivo.
-
Existe um tutorial muito bom do Manoel Campos disponível no site Active Delphi. Link: Clique aqui Obs.: você precisa se cadastrar no site para poder fazer o download.
-
Olá, Para fazer consultas a mais de um tabela, você precisa utilizar o componente ZUpdateSQL. Desta forma, faça o seguinte: 1) Insira um componente ZUpdateSQL; 2) Selecione seu componente ZQuery e configure sua propriedade UpdateObject para ZUpdateSQL1; 3) Ainda com o ZQuery selecionado, configure sua propriedade RequestLive para True. Pronto. Tente utilizar a consulta SQL novamente e veja se funciona. Abs.
-
Olá pessoal, estou postando aqui meu site pessoal sobre Delphi (http://www.capablanca.com.br). Nele você encontrará tutoriais e outros recursos para o Delphi. Faça uma "visita"! Abraços.
-
Já está disponível o download do tutorial no formato ZIP. Entre na seção TUTORIAIS e dê REFRESH (duas ou três vezes) no seu navegador, caso a página tenha sido armazenado no CACHE.
-
Você é a segunda pessoa que fala isso. Não imagino qual seja o problema. Em todo caso, se você fizer o download com um programa tipo o DOWNLOAD ACCELERATOR http://www.downloadaccelerator.com/DAP7/Default.asp, funcionará. Vou disponibilizar um arquivo com extensão ZIP também.
-
Olá Rafael, Como você falou que se trata de "nomes de usuário" do seu sistema, geralmente não é colocada nenhuma restrição quanto ao nome do usuário em si (mesmo porque, é muito difícil existir dois usuários com o mesmo nome). Em se tratando de usuários do sistema, geralmente é criado um campo que armazenará o NOME do usuário (por exemplo, RAPHAEL DIAS DE SOUZA) e um outro campo que será o LOGIN (por exemplo, RDIAS). Este login SIM, não poderá ser repetido (com isto você se livra do problema de ter nomes de usuário diferentes). Daí ficou fácil, pois o login pode ser algo controlado (por exemplo, no máximo 10 caracteres), não admitindo acentos e apenas com letras maiúsculas. Pronto. Se, por exemplo, tivermos dois RAPHAEL DIAS DE SOUZA, sendo que o primeiro tem o login RDIAS, caso o segundo tente cadastrar seu login como RDIAS (admitindo que qualquer usuário possa se cadastrar no sistema, não necessitando do administrador), o sistema facilmente detecterá. Se a sugestão acima não for interessante para o seu caso em concreto, é só dar um toque. Abs.
-
Olá, Eu elaborei um tutorial completo, passo a passo, de como se conectar a um banco de dados Firebird utilizando componentes ZeosDBO. Tendo em vista que os componentes ZeosDBO dão acesso também para banco de dados MySQL, creio que parte do tutorial será útil para você (estou elaborando um outro tutorial específico para MySQL). Entre no meu site (link abaixo) na seção Tutoriais e faça o download do tutorial que mencionei acima. Abs.
-
Olá, Eu elaborei um tutorial completo, passo a passo, de como se conectar a um banco de dados Firebird utilizando componentes ZeosDBO. Entre no meu site (link abaixo) na seção Tutoriais e faça o download do tutorial que mencionei acima. Abs.
-
Olá RM, está lembrado de mim? Bem, pegando o "gancho da idéia" que o CorpoSemAlma deu em um outro tópico, elaborei um tutorial completo, passo a passo, de como se conectar a um banco de dados Firebird utilizando componentes ZeosDBO. Entre no meu site (link abaixo) na seção Tutoriais e faça o download do tutorial que mencionei acima. Abs. Obs.: Obrigado CorpoSemAlma pela sua resposta no outro tópico do RM. Não deu para agradecer a tempo pois ele foi fechado.
-
Concordo com você, Calvin. Dificilmente me disponho a ajudar alguém pelo ICQ. Mas no caso específico deste tópico, a questão é extremamente ampla. O cara disse: "não consigo fazer nada nem sei por onde começar". Desta forma, ao invés de dar uma resposta longa (o que não é nem um pouco eficiente, exceto em algumas poucas exceções), considero interessante ajudar a pessoa atráves do ICQ. É verdade. Se eu for ter que ajudar a todos pelo ICQ, teria que responder a mesma coisa pra cada um. No entanto, até o presente momento não me lembro de alguém ter colocado um tópico sobre FIREBIRD dizendo que não sabe nada, nem como criar tabelas, nem como conectar. Volto a dizer: a questão é extremamente ampla e é totalmente ineficaz dar uma resposta ampla aqui no fórum, pois geralmente os membros possuem uma questão específica. Gostaria de saber dos MODERADORES sobre esta atitude (informar ICQ para ajudar os membros, em casos específicos), se perante o fórum esta correta ou não. Agradeço a sua observação, Calvin.
-
A partir de seu form principal, aperte simultaneamente as teclas ALT + F11 e selecione o seu DataModule. Volte no seu componente DBEdit e o Datasource que estava no DataModule deverá aparecer.
-
Aplicativo Executado Uma Só Vez - (RESOLVIDO)
pergunta respondeu ao Paulo Nobre de Capablanca em Delphi, Kylix
Olá, Exemplo nº 1 Se você apenas precisa de um código que iniba o usuário abrir outra instância de seu aplicativo, utilize o seguinte: program Project1; uses Windows, Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} var hMutex : LongWord; begin hMutex := CreateMutex(nil,False,'OneInstance'); if WaitForSingleObject(hMutex,0) <> WAIT_TIMEOUT then begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end; end. Observe que o código acima não se refere a uma UNIT, mas ao próprio PROJECT SOURCE (menu PROJECT > VIEW SOURCE). Logo, as alterações devem ser feitas no próprio arquivo fonte do PROJETO (e não na UNIT correspondente a ele). Exemplo nº 2 Se você precisa de um rotina que analise se determinado aplicativo já está rodando e, caso afirmativo, seja exibida uma mensagem, utilize o seguinte: Instruções: 1) vá em FILE > CLOSE ALL; 2) depois selecione FILE > NEW > UNIT; 3) apague todo o código da sua UNIT e digite o código abaixo: unit multinst; interface uses Forms, Windows, Dialogs, SysUtils, inifiles; // The following declaration is necessary because of an error in // the declaration of BroadcastSystemMessage() in the Windows unit function BroadcastSystemMessage(Flags: DWORD; Recipients: PDWORD; uiMessage: UINT; wParam: WPARAM; lParam: LPARAM): Longint; stdcall; external 'user32.dll'; const MI_NO_ERROR = 0; MI_FAIL_SUBCLASS = 1; MI_FAIL_CREATE_MUTEX = 2; { Query this function to determine if error occurred in startup. } { Value will be one or more of the MI_* error flags. } function GetMIError: Integer; implementation const UniqueAppStr : PChar = 'application.exe'; var MessageId: Integer; WProc: TFNWndProc = Nil; MutHandle: THandle = 0; MIError: Integer = 0; function GetMIError: Integer; begin Result := MIError; end; function NewWndProc(Handle: HWND; Msg: Integer; wParam, lParam: Longint): Longint; stdcall; begin { If this is the registered message... } if Msg = MessageID then begin { if main form is minimized, normalize it } { set focus to application } if IsIconic(Application.Handle) then begin Application.MainForm.WindowState := wsNormal; Application.Restore; end; SetForegroundWindow(Application.MainForm.Handle); Result := 0; end { Otherwise, pass message on to old window proc } else Result := CallWindowProc(WProc, Handle, Msg, wParam, lParam); end; procedure SubClassApplication; begin { We subclass Application window procedure so that } { Application.OnMessage remains available for user. } WProc := TFNWndProc(SetWindowLong(Application.Handle, GWL_WNDPROC, Longint(@NewWndProc))); { Set appropriate error flag if error condition occurred } if WProc = Nil then MIError := MIError or MI_FAIL_SUBCLASS; end; procedure DoFirstInstance; begin SubClassApplication; MutHandle := CreateMutex(Nil, False, UniqueAppStr); if MutHandle = 0 then MIError := MIError or MI_FAIL_CREATE_MUTEX; end; procedure BroadcastFocusMessage; { This is called when there is already an instance running. } var BSMRecipients: DWORD; SGINIFile: TIniFile; multi: boolean; begin SGIniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'sig_gen.ini'); multi := SGIniFile.ReadBool('Options', 'MultipleInstance', false); SGINIFile.Free; if multi = False then begin { Don't flash main form } Application.ShowMainForm := False; { Post message and inform other instance to focus itself } BSMRecipients := BSM_APPLICATIONS; BroadCastSystemMessage(BSF_IGNORECURRENTTASK or BSF_POSTMESSAGE, @BSMRecipients, MessageID, 0, 0); ShowMessage('Existe outra instância do aplicativo rodando !'); Application.Terminate; end; end; procedure InitInstance; begin MutHandle := OpenMutex(MUTEX_ALL_ACCESS, False, UniqueAppStr); if MutHandle = 0 then { Mutex object has not yet been created, meaning that no previous } { instance has been created. } DoFirstInstance else BroadcastFocusMessage; end; initialization MessageID := RegisterWindowMessage(UniqueAppStr); InitInstance; finalization if WProc <> Nil then { Restore old window procedure } SetWindowLong(Application.Handle, GWL_WNDPROC, LongInt(WProc)); end. 4) no menu, selecione FILE > SAVE e salve a sua UNIT como multinst; 5) Pronto. Basta adicionar esta UNIT no projeto do aplicativo no qual vc. quer que ela funcione (se vc. já estiver com o projeto aberto, vá em PROJECT > ADD TO PROJECT e localize a UNIT multinst que você acabou de criar. 6) Você poderá configurar o nome do aplicativo no ShowMessage. Obs.: creio que este segundo exemplo não seja tão simples como vc. havia pedido, mas funciona corretamente. Abs. -
Uma das formas: 1) Crie seu banco de dados MYSQL (sem adicionar nenhuma tabela); 2) Utilizando o BDEADMIN, crie um ALIAS para o seu banco de dados MYSQL que você acabou de criar (para isto, vc. precisará ter o driver MYODBC instalado em seu micro); 3) Abra o DATAPUMP (Iniciar > ProgrAmas > Borland Delphi 7 > DataPump); 4) Na tela inicial que se abre, escolha a opção SELECT BY ALIAS NAME e procure pelo alias que deseja converter. No seu caso, o alias do seu banco de dados paradox; 5) Cliquem em NEXT; 6) Na nova tela, especifique o alias que você criou para o seu banco de dados MYSQL; 7) Clique em NEXT; 8) Pedirá a senha. No caso, simplesmente dê OK; 9) Escolha agora as tabelas que deseja converter. Basta selecionar e clciar nas setas no meio das duas colunas. Ou se preferir, clique em ">>", que todas as tabelas serão selecionadas; 10) Clique em NEXT; 11) Aparecerá uma tela informando as alterações que irão acontecer. Dê uma olhada com calma pois aqui é verificada a compatibilidade dos campos etc; 12) Clique no botão UPSIZE; 13) Agora é entrar no seu projeto e fazer algumas pequenas mudanças no código fonte e na ligação das tabelas, para que ele seja compatível com o novo banco de dados.
-
Seria interessante que vc. fosse um pouco mais claro e especificasse sua dúvida com detalhes. No entanto, acho que vc. quer saber como parar de aparecer a caixa de diálogo LOGIN PROMPT, nas conexões ADO. Se for isto, é muito simples. Selecione o seu componente ADOConnection. No OBJECT INSPECTOR, configure a propriedade LOGIN PROMPT para FALSE.
-
Me contacte pelo ICQ e eu te explico. ICQ 4826639
-
Olá, 1) substitua seu componente TABLE por um QUERY; 2) Adicione os seguintes códigos no evento OnKeyUp do Edit1: Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM NomeDaTabela WHERE NomeDoCampo LIKE ' + #39 + Edit1.Text + '%' + #39); Query1.Open; 3) Na propriedade 'SQL' de sua QUERY, digite: SELECT * FROM NomeDaTabela 4) Configure a propriedade 'ACTIVE' de sua QUERY para 'TRUE'; 5) Configure o DATASET de seu DATASOURCE para QUERY1; 6) Configure o DATASOURCE do seu DBGRID para DATASOURCE1. Qualquer dúvida ou esclarecimento, dá um toque. Abs.
-
Você se refere à busca por aproximação utilizando instruções SQL? Esclareça melhor sua dúvida, principalmente no que diz respeito a como vc. gostaria que a aproximação fosse feita.
-
Sugiro o seguinte: 1) DELPHI 7 - Cadastro e Estoque. Carlos Oliviero. Editora Érica; 2) DELPHI 7 - Relatórios e Ferramentas. Carlos Oliviero. Editora Érica; 3) DELPHI 7 e 8 - Vendas, Contas a Pagar e a Receber. Carlos Oliviero e William Pereira Alves. Editora Érica. Com estes livros vc. vai aprender muito. São claros e guiam o leitor passo a passo a como desenvolver o aplicativo do livro. Altamente recomendável. O DELPHI é um programa que utiliza uma linguagem chamada OBJECT PASCAL (ou DELPHI PASCAL ou ainda PASCAL DO DELPHI). É um linguagem que não é difícil de se aprender. Pelo contrário, é bem legal. Você gostar muito dela. Desta forma, indicaria um livro sobre OBJECT PASCAL bastante simples para iniciantes (vai te ajudar bastante). É o OBJECT PASCAL para DELPHI, do Lendro Cristovão (editora Visual Books). O livro nº 1 lá em cima e este do OBJECT PASCAL foram os livros com os quais iniciei no Delphi. Depois vieram outros, mas estes vão te ajudar bastante. Se você precisar de ajudar em alguma coisa, entre em contato através do e-mail mack@cordeirorodrigues.com.br ou me encontre no ICQ 4826639 Abs. e boa sorte!
-
Desculpe-me, esqueci de fazer o LOGIN. O reply acima é meu.
-
A respota está em negrito. procedure TForm1.Button1Click(Sender: TObject); begin Memo1.Text:= ''; end; Conselho: compre uns livros; eles vão te ajudar a aprender.
-
Vou pedir para alguns colegas visitarem este tópico e darem uma "olhada". De repente, está escapando algum detalhe que nós não vimos.
-
Fique à vontade. Lilia, vá fazendo testes mais simples, antes de refazer TODO o código. A princípio, como já havia comentado, não há nada de errado com seu código (isto é que está intrigando). Desta forma, ao invés de refazer TOTALMENTE seu código, vá fazendo testes SIMPLES e alterando aos poucos.