1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
procedure TSite.DB_Write_Object();
var
nbNameInDB: Integer;
Mstream1, Mstream2: TMemoryStream;
begin
if not HSLmySQL.TADOCOnnection1.Connected then
raise Exception.create( SHSL_NotConnectedToDB );
Mstream1 := TMemoryStream.Create();
Mstream2 := TMemoryStream.Create();
try
if not self.Picture.empty then
self.Picture.SaveToStream( Mstream1);
if ( self.Diary <> nil ) then
self.Diary.SaveToStream( Mstream2 );
// test how many site have same name in multisites
nbNameInDB := self.DB_HowManyNameAlreadyExistsInTable(GetParentIndex);
HSLmySQL.ADOQuery1.SQL.Clear();
case nbNameInDB of
1 : // UPDATE
begin
HSLmySQL.ADOQuery1.SQL.Add( 'UPDATE ' + self.DB_temp2 +
' WHERE ([' + SITES_Table[ aSITE_NAME ] + ']=''' + self.FName + ''') AND (' + SITES_Table[ aSITE_MULTISITE_INDEX ] + ' = ' + inttostr(self.parent_index) + ');' );
HSLmySQL.ADOQuery1.Parameters.ParamByName('pict_blob').LoadFromStream( Mstream1, ftblob );
HSLmySQL.ADOQuery1.Parameters.ParamByName('diary_blob').LoadFromStream( Mstream2, ftblob );
//v2.02
HSLmySQL.ADOQuery1.ExecSQL();
end;
0 : // INSERT
begin
HSLmySQL.ADOQuery1.SQL.Add( 'INSERT INTO ' + self.DB_temp + ' ;' );
//HSLmySQL.ADOQuery1.Parameters.ParamByName('_pict_blob').LoadFromStream( Mstream1, ftblob );
//HSLmySQL.ADOQuery1.Parameters.ParamByName('_diary_blob').LoadFromStream( Mstream2, ftblob );
//HSLmySQL.ADOQuery1.Parameters.CreateParameter('_pict_blob',ftBlob,pdInput,10000000,nil);
HSLmySQL.ADOQuery1.Parameters.ParamByName('pict_blob').LoadFromStream( Mstream1, ftblob );
//HSLmySQL.ADOQuery1.Parameters.CreateParameter('_diary_blob',ftBlob,pdInput,10000000,nil);
HSLmySQL.ADOQuery1.Parameters.ParamByName('diary_blob').LoadFromStream( Mstream2, ftblob );
//v2.02
HSLmySQL.ADOQuery1.ExecSQL();
end;
else
//if ( nbNameInDB > 1 ) then
showmessage( self.FName + ' : ' + SHSL_MoreThan1SameNameInTable );
end;//case
finally
Mstream1.Free();
Mstream2.Free();
end;
self.pk_index := DB_Get_Object_Index( stableName, self.ObjectName, Column_parent_index, self.parent_index );
end; |
Partager