Dariusz
Bujak
Student, młodszy
programista JAVA,
C++
Temat: Pobieranie danych z bazy
Witam,mam taki problem, ponieważ chciałbym pobrać dane z bazy postgrsql
z kolumny która ma typ danych
bytea
Próbowałem używać
int size;
const char* contents;
try
{
// Will hold the number of field in employee table
int nFields;
// Start a transaction block
PGresult *res = PQexec(_conn, "BEGIN");
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
log->save("BEGIN command failed");
PQclear(res);
}
// Clear result
PQclear(res);
// Fetch rows from
ostringstream query;
string s1("DECLARE emprec CURSOR FOR SELECT portion::bytea FROM
software_file WHERE id = ");
string sk(";");
query <<
s1 << this->id << sk;
//res = PQexec(_conn, query.str().c_str());
res = PQexecParams(_conn, query.str().c_str(), 0, NULL, NULL,
NULL, NULL, 1);
if (PQresultStatus(res) != PGRES_COMMAND_OK)
{
log->save("DECLARE CURSOR failed: " + query.str());
PQclear(res);
}
// Clear result
PQclear(res);
res = PQexec(_conn, "FETCH ALL in emprec");
if (PQresultStatus(res) != PGRES_TUPLES_OK)
{
log->save(" FETCH ALL failed: " + query.str());
PQclear(res);
}
// Get the field name
nFields = PQnfields(res);
// Next, print out the employee record for each row
int i = 0;
//PGbytea
if (res && PQresultStatus(res)==PGRES_TUPLES_OK) {
size = PQgetlength(res, 0, 0);
contents = PQgetvalue(res, 0, 0); /* binary representation */
}
ale zamiena size miała wartość 13567 choc wiem że na 100% w
bazie jest plik o rozmiaze 4100. W czym jest problem?