2013-02-15 2 views
0

mysql ++ 라이브러리를 사용하여 데이터베이스에 연결합니다. 나는 연결을 생성하고 쿼리했습니다문자열과 인용 부호 사이의 텍스트 전송의 차이점

Connection conn(false); 
conn.connect("database", "localhost", "user", "pass"); 
Query query = conn.query(); 

그런 다음 내가 좋아하는 데이터베이스에 쿼리를 보낼 수 있습니다

query << "select name from my_table1, my_table2 where age=20" 

그러나 나는 20 대신 변수를 보내고 싶어요. 나는 그 방식으로 그렇게하려고했습니다 :

std::stringstream ss; //create a stringstream 
ss << my_number //add number to the stream 
std::string number = ss.str(); 
query << "select name from my_table1, my_table2 where age="+number; 

불행히도, 그것은 작동하지 않습니다. 두 번째 문제점은 유사합니다.

std:string name; 
(...) 
std::string path = "/home/root/img/"+name+".png"; //name is a variable string 
QPixmap *tmp = new QPixmap(QString::fromUtf8(path.c_str())); //conversion from string to QString 
+0

당신은 path''에 대한 정확한 종류와 선언을 포함하고'name' 수 있습니까? –

+1

"나던 일"에 활발히 참여할 수 있습니까? 또한 첫 번째 경우에는 준비된 문장을 사용해야합니다. –

+1

당신은 질의 할당을'query << "select my_table1, my_table2 where name ="<< my_number'에서 다시 작성할 수 있습니다. –

답변

3
query << "select name from my_table1, my_table2 where age="+number; 

가 있어야한다 : 나는 (여기 QPixmap 어쨌든 문제가되지 않는다)을 QPixmap 객체를 만들고 난 내 이미지에 생성자에게 경로를 제공했습니다

query << "select name from my_table1, my_table2 where age=" << number; 

+ 가입일 유효한 C++ 스트림 연결 연산자가 아닙니다.

QPixmap의 문제점은 무엇입니까? 어쩌면 그건 별개의 질문일까요? 두 번째 문제를 들어

+0

@Jason Sperske와 당신 덕분에 첫 번째 문제가 해결되었습니다. QPixmap에 관해서는 나중에 QPixmap을 확장하고 싶습니다. "QPixmap :: scaleHeight : Pixmap은 null pixmap입니다" – kozooh

+0

@ user1830818 정말 새로운 질문을 제안합니다. 경로 또는 파일 이름이 유효하지 않은 것 같습니다. (사용하기 전에 디버거 또는 콘솔 출력에서 ​​path.c_str()을 읽으십시오.) –

+0

흠, 경로가 정상적으로 보입니다. "path/to/the/file"을 문자열 대신 따옴표 ""사이에 넣으면 작동합니다. 그러나 OK, 나는 새로운 질문을 만든다, 고마워! – kozooh

2

내가 권하고 싶습니다이에서 변경 : 이것에

std:string name; 
(...) 
std::string path = "/home/root/img/"+name+".png"; //name is a variable string 

는 :

const QString name; 
... 
const QString path = QString("/home/root/img/%1.png").arg(name); 
.... 
QPixmap tmp(path);