C++Builder DBExpress 保存圖像到MySQL數據庫

void __fastcall TForm1::btnInsertImgClick(TObject *Sender)
{
	
	TMemoryStream* sr = new TMemoryStream;

	TSQLConnection *conn = new TSQLConnection(NULL);
	conn->DriverName = "MySQL";
	conn->Params->Values["ServerCharSet"] = "utf8";
	conn->Params->Values["HostName"] = "127.0.0.1";
	conn->Params->Values["Database"] = "phonebook";
	conn->Params->Values["User_Name"] = "root";
	conn->Params->Values["Password"] = "1234567";
	conn->Params->Values["Port"] = 3306;

	conn->Connected = true;

	TFileStream *stream = new TFileStream("c:\\aa.png", fmOpenRead); // 以只讀模式打開圖片文件
	SQLQuery1->SQL->Text = "INSERT INTO t_user(UserName,`img`) VALUES (:UserName, :img)";
	SQLQuery1->ParamByName("UserName")->AsString = "孫1悟空";
	SQLQuery1->ParamByName("img")->LoadFromStream(stream, ftBlob);
	SQLQuery1->ExecSQL();
	delete stream;
}

void __fastcall TForm1::btnDisplayBlobImgClick(TObject *Sender)
{
	SQLQuery1->SQL->Text = "select UserName,`img` from t_user where uid = 8";
	SQLQuery1->Open();
	TBlobField *blob_pic = (TBlobField *)SQLQuery1->Fields->FieldByName("img");

	TMemoryStream * sm = new TMemoryStream();
	blob_pic->SaveToStream(sm);
	sm->Position = 0;  // 此句必須有
	Image1->Picture->LoadFromStream(sm);

	// blob_pic->SaveToFile("c:\\temp1.png");
	// Image1->Picture->LoadFromFile("c:\\temp1.png");
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章