Alguém sabe dizer porque o sistema trava quando eu tento usar a função "mysql_fecth_row()" usando MySQL com o Dev-C++?
Se eu comentar as partes que estão o código do mysql_fetch_row, o sistema funciona. Se eu colocar sem comentarios o mysql_fetch_row, a aplicação trava. Resumindo, a aplicação trava quando chega na parte que tem o mysql_fetch_row.
Código:
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <mysql/mysql.h>
using namespace std;
int valor = 1;
int opcaoPesquisarAluno = 1;
int opcaoAlterarAluno = 1;
char nome[30];
char matricula[30];
char telefone[30];
char queryString[100];
char queryStringPesquisa[100];
char mysqlquery[100];
FILE *conteudo;
FILE *conteudoPesquisaAluno;
int main()
{
char *host = "localhost";
char *username = "username";
char *password = "password";
char *database = "aluno";
MYSQL *socket;
socket = mysql_init(0);
if (socket)
{
//cout << "socket ok" << endl;
}
else
{
//cout << "socket failed" << mysql_error(socket) << endl;
}
if (mysql_real_connect(socket,host,username,password,database,0,NULL,0))
{
//cout << "Conexao ok" << endl;
}
else
{
//cout << "Conexao falhou" << mysql_error(socket) << endl;
}
while (valor != 4)
{
cout << "\n*******************"
<< "\n"
<< "1 - Cadastrar Aluno"
<< "\n"
<< "2 - Pesquisar Aluno"
<< "\n"
<< "3 - Alterar Aluno"
<< "\n"
<< "4 - Sair"
<< "\n"
<< "*******************";
cout << "\nDigite uma opcao: ";
cin >> valor;
system("cls");
if (valor == 1)
{
conteudo = fopen("file.txt","+a");
cout << "\n*******************"
<< "\n"
<< "Cadastrar Aluno"
<< "\n"
<< "*******************"
<< "\n"
<< "Digite o nome do Aluno: ";
cin >> nome;
cout << "\n"
<< "Digite a matricula do Aluno: ";
cin >> matricula;
cout << "\n"
<< "Digite o telefone do Aluno: ";
cin >> telefone;
fprintf(conteudo,"INSERT INTO aluno(nomeALuno,matricula,telefone) values ('%s','%s','%s');\n",nome,matricula,telefone);
fclose(conteudo);
conteudo = fopen("file.txt","r");
fgets(queryString,100,conteudo);
fclose(conteudo);
//cout << queryString;
mysql_query(socket,queryString);
//cout << mysql_error(socket);
system("cls");
}
if (valor == 2)
{
while(opcaoPesquisarAluno != 3)
{
cout << "\n*******************"
<< "\n"
<< "Pesquisar Aluno"
<< "\n"
<< "*******************"
<< "\n"
<< "1 - Pesquisar pelo nome do Aluno"
<< "\n"
<< "2 - Pesquisar pela matricula do Aluno"
<< "\n"
<< "3 - Voltar ao Menu Principal";
cout << "\nDigite uma opcao: ";
cin >> opcaoPesquisarAluno;
if (opcaoPesquisarAluno == 1)
{
conteudoPesquisaAluno = fopen("filePesquisa.txt","+a");
cout << "\nDigite o Nome do Aluno: ";
cin >> nome;
fprintf(conteudoPesquisaAluno,"SELECT * FROM aluno WHERE nome == '%s');\n",nome);
fgets(queryStringPesquisa,100,conteudoPesquisaAluno);
mysql_query(socket,queryStringPesquisa);
MYSQL_RES * res = mysql_store_result(socket);
fclose(conteudoPesquisaAluno);
//conteudoPesquisaAluno = fopen()
//int numColumns = mysql_num_fields(res);
MYSQL_ROW row;
//cout << mysql_fetch_row(res);
row = mysql_fetch_row(res);
//cout << row[0];
//cout << row[1];
// mysql_fetch_row retorna um array caso positivo ou retorna FALSE caso nao tenha mais linhas
/*while((row = mysql_fetch_row(res)) != FALSE)
{
for(int x=0; x < 3; x++)
{
cout << "nome aluno: " << row[0];
cout << "matricula aluno: " << row[0];
cout << "telefone: " << row[0];
}
} */
mysql_free_result(res);
cout << "teste";
//conteudoPesquisaAluno = fopen("filePesquisa.txt","r");
//cout << queryStringPesquisa;
system("PAUSE");
system("cls");
}
if (opcaoPesquisarAluno == 2)
{
cout << "\nDigite a matricula do Aluno: ";
cin >> matricula;
system("cls");
}
if (opcaoPesquisarAluno == 3)
{
system("cls");
valor = 1;
opcaoPesquisarAluno = 1;
break;
}
}
}
if (valor == 3)
{
while (opcaoAlterarAluno != 3)
{
cout << "\n*******************"
<< "\n"
<< "Alterar Aluno"
<< "\n"
<< "*******************"
<< "\n"
<< "1 - Pesquisar pelo nome do Aluno"
<< "\n"
<< "2 - Pesquisar pela matricula do Aluno"
<< "\n"
<< "3 - Voltar ao Menu Principal";
cout << "\nDigite uma opcao: ";
cin >> opcaoAlterarAluno;
if (opcaoAlterarAluno == 1)
{
cout << "\nDigite o nome do Aluno: ";
cin >> nome;
}
if (opcaoAlterarAluno == 2)
{
cout << "\nDigite a matricula do Aluno: ";
cin >> matricula;
}
if (opcaoAlterarAluno == 3)
{
valor = 1;
opcaoAlterarAluno = 1;
system("cls");
break;
}
system("cls");
}
}
}
return 0;
}
Pergunta
Usurname
Olá,
Alguém sabe dizer porque o sistema trava quando eu tento usar a função "mysql_fecth_row()" usando MySQL com o Dev-C++?
Se eu comentar as partes que estão o código do mysql_fetch_row, o sistema funciona. Se eu colocar sem comentarios o mysql_fetch_row, a aplicação trava. Resumindo, a aplicação trava quando chega na parte que tem o mysql_fetch_row.
Código:
Obrigado.
Link para o comentário
Compartilhar em outros sites
1 resposta 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.