moin
ich hab da nen problem ...
und zwar will ich eine tabelle füllen in dem ein feld ein blob ist ...
in dem blob soll eine datei abgespeichert werden die vorher im binärformat abgespeichert wurde ...
heist:
ich möchte nun *buf in meinem blob-feld ablegen...
ich hab eine tabelle die wie folgt aussieht:
tabellenname: sysconfig
spalten:
id num[4]
sgid vc2[255]
name vc2[255]
data blob
wie muss mein quellcode aussehn damit ich nun diesen buffer in mein blob rein bekomm?
vielen dank für eure hilfe
LT
p.s.: ich habe das auch schon in anderen foren versucht zu erfragen bisher ohne erfolg...
anhang: hier noch die varianten wie ich bisher auf meine oracle db zugreife:
Connect:
Insert:
Select:
ich hab da nen problem ...
und zwar will ich eine tabelle füllen in dem ein feld ein blob ist ...
in dem blob soll eine datei abgespeichert werden die vorher im binärformat abgespeichert wurde ...
heist:
Code:
CString name="test1.cfg";
char *buf;
CFile f;
char* pFileName=name.GetBuffer(name.GetLength());
if(f.Open(pFileName,CFile::modeRead | CFile::typeBinary)) {
int flen=f.GetLength();
buf = new char[flen];
f.Read(buf, flen);
f.Close();
}
name.ReleaseBuffer();
ich möchte nun *buf in meinem blob-feld ablegen...
ich hab eine tabelle die wie folgt aussieht:
tabellenname: sysconfig
spalten:
id num[4]
sgid vc2[255]
name vc2[255]
data blob
wie muss mein quellcode aussehn damit ich nun diesen buffer in mein blob rein bekomm?
vielen dank für eure hilfe
LT
p.s.: ich habe das auch schon in anderen foren versucht zu erfragen bisher ohne erfolg...
anhang: hier noch die varianten wie ich bisher auf meine oracle db zugreife:
Connect:
Code:
BOOL DB::DBConnectNow(){
CoInitialize (NULL);
DBConOK=FALSE;
// Stablishing a connection to the datasource
try {
HRESULT hr = m_pConn.CreateInstance (__uuidof (Connection));
if (FAILED (hr)){
return FALSE;
}
if (FAILED (m_pConn->Open (_bstr_t ("Provider=MSDASQL.1;Persist Security Info=False;User ID=system;Data Source=ArgusDB"), _bstr_t (""), _bstr_t (""), adModeUnknown))){
return FALSE;
}
}catch ( _com_error &e ){
_bstr_t bstrSource (e.Source());
_bstr_t bstrDescription (e.Description());
TRACE ( "Exception thrown for classes generated by #import" );
TRACE ( "\tCode = %08lx\n", e.Error ());
TRACE ( "\tCode meaning = %s\n", e.ErrorMessage ());
TRACE ( "\tSource = %s\n", (LPCTSTR) bstrSource);
TRACE ( "\tDescription = %s\n", (LPCTSTR) bstrDescription);
return FALSE;
}catch (...){
TRACE ( "*** Unhandled Exception ***" );
return FALSE;
}
DBConOK=TRUE;
return TRUE;
}
Insert:
Code:
BOOL DB::DBInsertNow(CString aktion){
try {
_bstr_t strSQL=(_bstr_t) aktion;
//Execute the insert statement
m_pConn->Execute(strSQL,NULL,adExecuteNoRecords);
} catch( _com_error &e ) {
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
TRACE( "Exception thrown for classes generated by #import" );
TRACE( "\tCode = %08lx\n", e.Error());
TRACE( "\tCode meaning = %s\n", e.ErrorMessage());
TRACE( "\tSource = %s\n", (LPCTSTR) bstrSource);
TRACE( "\tDescription = %s\n", (LPCTSTR) bstrDescription);
return FALSE;
}catch (...){
TRACE ( "*** Unhandled Exception ***" );
return FALSE;
}
return TRUE;
}
Select:
Code:
_RecordsetPtr DB::DBSelectNow(CString aktion){
_RecordsetPtr pRecordset;
try {
_CommandPtr pCommand;
HRESULT hr = pCommand.CreateInstance (__uuidof (Command));
if (FAILED (hr)){
printf("Can't create an instance of Command");
}
pCommand->ActiveConnection = m_pConn;
pCommand->CommandText = (_bstr_t) aktion;
hr = pRecordset.CreateInstance (__uuidof (Recordset));
if (FAILED (hr)){
printf ("Can't create an instance of Recordset");
}
pRecordset->CursorLocation = adUseClient;
pRecordset->Open ((IDispatch *) pCommand, vtMissing, adOpenForwardOnly,
adLockReadOnly, adCmdUnknown);
} catch( _com_error &e ) {
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
TRACE( "Exception thrown for classes generated by #import" );
TRACE( "\tCode = %08lx\n", e.Error());
TRACE( "\tCode meaning = %s\n", e.ErrorMessage());
TRACE( "\tSource = %s\n", (LPCTSTR) bstrSource);
TRACE( "\tDescription = %s\n", (LPCTSTR) bstrDescription);
}catch (...){
TRACE ( "*** Unhandled Exception ***" );
}
return pRecordset;
}