Hewitt 14 Denunciar post Postado Maio 2, 2008 Bom dia galera. Estou com um probleminha! Fiz um programa para cadastro de bugs, onde os 3 desenvolvedores do projeto podem ter acesso pela net, através do MySQL. Seguindo um tutorial (http://imasters.com.br/artigo/3405/mysql/delphi_zeus_e_mysql/), consegui fazer tudo rodar normal, cadastrando, apagando, etc, com o DBNavigator. Criei uma conta (somente para testes) no www.freesql.com, consigo o acesso pela net normalmente, preencho todos os dados,mas quando vou cadastrar (com o DBNavigator), dá o seguinte erro: "sql error: got error -1 from storage engine" O que estou fazendo de errado? Será que é o servidor ou é o programa? Tbm queria saber, os comandos MySQL para inserir no banco de dados, os textos do DBEdit1, DBEdit2, DBEdit3 e DBEdit4 (que compoem o programa). PS: como o tutorial que segui, ele nãoc ria uma Query. Terei que criá-la? Desde já agradeço! Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Maio 2, 2008 O zeos tem table? se sim, provavelmente será o Método Post Não esqueça que é necessário colocar a tabela em modo de inserção com o método Insert Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 2, 2008 Sim, tem a table. Mas para trabalhar na net, no caso, teria que adicionar uma Query e deletar a Table? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 2, 2008 Este servidor permite o acesso externo ao BD em MySQL ? Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 2, 2008 Sim, ele permite. O que quero saber, é os comandos que tenho que usar para adicionar a minha tabela, os dados que foram digitados/selecionados. Por exemplo: o DBComboBox, tenho 5 ícones que posso selecionar. Quando eu clicar no botão cadastrar, quais comandos que preciso usar para ele adicionar na tabela (ou query) no servidor. Deu pra entender? ^^ Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 2, 2008 Bom, você pode usar os comandos básicos de SQL, como Insert, Update e Delete, ex: insert into tabela (campo1, campo2, campo3) values (1, 'Teste', 15.80); update tabela set campo2 = 'Testeeeee' where campo1 = 1 delete from tabela where campo1 = 1 Terá de usar uma Query para executar o comando. Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 2, 2008 Intendi! :P Vamos supor, tenho um DBEdit1 (referência à Nome) e DBEdit2 (referência à sobrenome). Quando um clicar no botão, teria qus ser o seguinte código: insert into nome_tabela (Nome,Sobrenome) values ('dbedit1.text','dbedit2.text'); Correto? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 2, 2008 Mais ou menos isto, no caso você teria de usar tudo Edit, tirando os DBEdit... E passar o que é string entre aspas, algo como: insert into nome_tabela (Nome,Sobrenome) values ('''' + edit1.text ''',''' + edit2.text + '''''); Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 2, 2008 Ainda estou com dúvidas! Teria algum link, tutorial ou apostila para dar uma estudada e evitar ficar perguntando aqui? :) O que não intendi foi essas 4 aspas, e o motivo de colocar elas! ^^ Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 2, 2008 Quando é string precisa passar entre aspas, assim como valores monetários precisa ser com . Veja no site do MySQL -> http://dev.mysql.com/doc/refman/4.1/pt/index.html Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 3, 2008 beleza, já consegui. Mas o problema agora é outro. Uso o www.freesql.org como teste, e toda vez que tento cadastrar os dados, dá esse erro: "SQL ERROR: GOT ERROR -1 FROM STORAGE ENGINE" Alguém sabe do que se trata? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 4, 2008 Você tem como colocar o comando que esta executando ? Mas precisa ser o comando exato, pode ser alguma coisa até mesmo com a versão do servidor MySQL. Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 4, 2008 O código tá assim: procedure TForm1.btOKClick(Sender: TObject); begin btOK.Enabled:=false; DM.ZQuery.Active := false; DM.ZQuery.SQL.Clear; DM.ZQuery.SQL.Add('insert into tb_bug (Bug, Nick, Nome, Data) values (''' + form1.Edit2.Text + ''', ''' + form1.Edit1.Text + ''', ''' + form1.combobox1.text + ''', ''' + formatdatetime('YYYY-MM-DD',strtodate(Edit3.Text)) + ''')'); DM.ZQuery.ExecSQL(); Edit1.Clear; Edit2.Clear; Combobox1.Clear; Showmessage('Dados inseridos com sucesso!'); Rodando em localhost, funciona perfeitamente. :) Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 4, 2008 Já ta tudo certo, era o server mesmo. :( Mas agora estou com um problema: Coloquei um DBGrid, pra quando for feito o cadastro, a pessoa poder visualizar os dados já cadastrados, mas o DBGrid não ta mostrando nada. E também não consigo ativar a ZQuery, ali no Object Inspector, dá esse erro: "SQL ERROR: QUERY WAS EMPTY" Como resolvo esses 2 erros? Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 5, 2008 Quando você executar o aplicativo, e ativar a query, trás alguma coisa ? O desenvolvimento com BD online é diferente do que local... Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 5, 2008 Eu procurei pela net e achei que tinha que adicionar alguns comandos na propriedade SQL(Strings) do Object Inspector! ;) Mas agora, creio que seja o ultimo problema: quando clico em Cadastrar (botão dos comandos de SQL para o servidor), o DBGrid não atualiza! :( Como procedo para resolver esse problema?? Já tentei quase tudo (ZUpdateSQL). Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 5, 2008 Certo, depois que cadastrar, tente fechar e abrir a sua query, forçando assim a atualização. Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 7, 2008 Certo, depois que cadastrar, tente fechar e abrir a sua query, forçando assim a atualização.Estou fazendo assim: Quando clicar no Label, executar: DM.ZQuery.Active:=False; DM.ZQuery.SQL.Clear; DM.ZQuery.SQL.Add('select * from tb_bug'); DM.ZQuery.ExecSQL(); Está faltando algo, porque não está atualizando. :( Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Maio 8, 2008 Você esta dando um ExecSQL, isto funciona para comandos como insert, update, delete, etc... Use somente o .Open; DM.ZQuery.Close; DM.ZQuery.SQL.Clear; DM.ZQuery.SQL.Add('select * from tb_bug'); DM.ZQuery.Open; Compartilhar este post Link para o post Compartilhar em outros sites
Hewitt 14 Denunciar post Postado Maio 9, 2008 Você esta dando um ExecSQL, isto funciona para comandos como insert, update, delete, etc... Use somente o .Open; DM.ZQuery.Close; DM.ZQuery.SQL.Clear; DM.ZQuery.SQL.Add('select * from tb_bug'); DM.ZQuery.Open; Mais uma vez Márcio, muito obrigado! Agora estou concluindo o meu projeto, ja implementei o deletar desta forma: procedure TForm3.BitBtn1Click(Sender: TObject); Var Texto: String; begin Texto:= Inputbox('TESTANDO','Qual ID deseja apagar?',''); DM.ZQuery.Close; DM.ZQuery.SQL.Clear; DM.ZQuery.SQL.Add('delete from tb_bug where ID=''' + Texto +''''); Showmessage('Dados deletados com sucesso!'); DM.ZQuery.ExecSQL; end; O problema é: Quando eu deleto o ID 1 por exemplo, ai cadastro um novo, ele auto incrementa como ID 2. Não tem como ele incrementar como ID 1, já que este foi deletado? Compartilhar este post Link para o post Compartilhar em outros sites