A primeira coisa a fazer, é verificar se tudo está bem no MySQL.
Selecione o componente conn, e no OI marque a opção Connected como True.
O Kylix agora vai tentar se conectar ao servidor MySQL e caso tenha sucesso ele só vai manter a opção como True. Caso contrário, informará um erro e você terá que verificar o MySQL para saber o que há de errado. Siga a minha dica da URL
http://www.guiadohardware.net/linux/dicas/40.htm e tente novamente.
MySQL ok? vamos fazer um evento para fechar o programa:
Clique duas vezes no botão butFechar, e no fonte digite o seguinte:
procedure TfPrincipal.butFecharClick(Sender: TObject);
begin
if messagedlg('Deseja realmente fechar esse programa?', mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
Application.Terminate;
end;
end;
Tecle F9 e teste o evento.
Inserindo dados no MySQL:
Vamos criar o evento do botão butIns, inserindo no MySQL os dados digitados nos componentes edtNome e edtTel.
O que temos que pensar? Que vamos capturar o valor digitado nos edits, jogar numa string MySQL e executar a mesma no servidor MySQL. É bem simples, veja o fonte abaixo:
procedure TfPrincipal.butInsClick(Sender: TObject);
var nome, tel: string; //Aqui eu declaro as variaveis que vou usar para os dados
erro: integer; //Essa variável vou usar como controle de erros
begin
//Capturando os valores e jogando nas variaveis
nome:= trim(edtNome.Text);
tel:= trim(edtTel.Text);
erro:= 0;
//verificando se a variavel nome está vazia ou não:
//se estiver vazia, dou valor 1 para o erro, uma mensagem é exibida e o programa não acessa o mysql.
if (nome='') then
begin
ShowMessage('Você precisa digitar um nome!');
erro:= 1;
end;
//verificando se a variavel tel está vazia ou não:
//se estiver vazia, dou valor 1 para o erro, uma mensagem é exibida e o programa não acessa o mysql.
if (tel='( ) -') then
begin
ShowMessage('Você precisa digitar um telefone!');
erro:= 1;
end;
//verificando se houve erro na validação. Se houve não faz nada
// Se não houve erro, prossegue com o mysql.
if (erro=0) then
begin
//criando a string MySQL. é necessário o uso da função quotedstr() para inserir as aspas simples nos valores.
sql.SQL.Text:= 'INSERT INTO telefones (agenda_id, agenda_nome, agenda_tel) VALUES (0,'+quotedstr(nome)+', '+quotedstr(tel)+')';
//executando a string:
sql.ExecSQL(True);
//limpando os edits:
edtNome.Text:= '';
edtTel.Text:= '';
// informando o sucesso da operação:
showmessage('Cadastrado com sucesso!');
end;
end;