Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Hewitt

Delphi 7 + MySQL 4.1 + Zeos + BD Remoto!

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.