[질문] mysql++을 이용하고 있습니다. 그런데 중지됨이라는 메시지가..
글쓴이: kddh1 / 작성시간: 금, 2005/12/16 - 10:00오전
#include<mysql++.h> #include<iostream> #include<iomanip> #define HOST "localhost" #define USER "root" #define PASS "" #define DATABASE "test" using namespace std; int main(int argc,char *argv[]) { int i; mysqlpp::Connection con(DATABASE,HOST,USER,PASS); mysqlpp::Query query = con.query(); query << "select * from address"; mysqlpp::Result res=query.store(); if(res) { mysqlpp::Row row; mysqlpp::Row::size_type i; for(i=0; row=res.at(i); ++i) { cout << row["name"] << row["address"] << row["tel"] <<endl; } } else { cerr << "Failed to get item " <<query.error() <<endl; return 1; } cout << "list End " << endl; return 0; }
위와같은코드입니다. 컴파일 에러없이 잘됩니다.
실행하면 해당 리스트가 아주 잘뿌려지고요.
문제는 다 뿌려지고 나면 콘솔에
"중지됨" 이라는 글자가 뜹니다.
최소한 list End라는 문장은 나와야하는게 아닌지...
왜 -_- for문다 다 돌고나면 중지됨으로 되어버리는건지..
아시는분 계시면 좀 알려주세요. 보니까
프로그램이 죽어버리는것같던데... 중지됨으로 인해서요.
for문도 그렇고 while문으로 구현해봐도-_- 똑같이
중지됨 떠버리네요 같은일을 수행하는
그냥 C프로그램은 잘만되는데-_- 버그일까요,... 버그면 좌절-_-
Forums:
[quote]for(i=0; row=res.at(i); ++i)[/q
이부분이 잘못됐네요
손님 그부분은-_-;;
mysql홈피에서 예제보고 그대로 적었던 부분인데요;;
설마 만든넘들이-_-;;; 잘모르고 만들었다는건가요...
잘못됐다고 하셨는데 어떤게 맞는건지... 감이안오는군요.
for 문에서 중간 단에 들어갈 것은 True/False를 알려주는 문이
for 문에서 중간 단에 들어갈 것은 True/False를 알려주는 문이어야 하니까
(굳이 따지면) res.at(i)가 0이 되면 그만두겠지만, 없는 참조에 대해 그렇게 행동하리라고 믿기에는 reference 상의 정보가 부실하네요. 차라리 res.rows() 같은 함수로 먼저 개수를 파악하고 해 보면 어떨까요?
octaphial_nologin님 감사합니다.
그렇군요-_-
이넘들;;; mysql홈피의 정보라고 100%믿고 그대로 했더니만-_-
앞으로는 의심하는 습관을 길러봐야겠습니다.
상세한 정보감사했습니다.
좋은하루되세요. 여기는 눈이 엄청오네요(광주)
댓글 달기