{$ifdef BIN_IMPORT_} var DS: PDataSource; SS: PSession; QR1: PQuery; var OneContact:boolean; flags:integer; timestamp:LongWord; Msg:string; function FindUIDinDB(too:string):string; var QR2:PQuery; begin QR2:= NewQuery( SS ); QR2.Text := 'select to, UID from ChatHistory WHERE to='+too; QR2.Open; QR2.First; result:=QR2.FieldByNameAsStr['UID']; QR2.Free; end; {$else} begin DoUnMapFile; OneContact:=(DContact.hContact<>0) and (DContact.hContact<>INVALID_HANDLE_VALUE); try DS := NewDataSource( 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' + 'Data Source='+FileName+ ';Mode=Share Deny None;' + 'Extended Properties="";' + 'Locale Identifier=1033;' + 'Persist Security Info=False;'); SS := NewSession( DS ); QR1 := NewQuery( SS ); QR1.Text:= 'SELECT Messages.from, date, to, type, subType, subject FROM Messages'; QR1.Open; if (QR1.ColCount=7) then begin DoMessage(ITXT_THREAD_START,0,0); QR1.First; DoMessage(ITXT_THREAD_MAXPROGRESS,0,QR1.RowCount); While not QR1.EOF do begin try if (QR1.SFieldByName[ 'type' ]='Text') and (QR1.SFieldByName[ 'subType' ]='IM') then begin UIDStr:=FindUIDinDB(QR1.FieldByNameAsStr[ 'to' ]); if not OneContact then begin DContact.ContactUID:=UIDStr; TryDetermContact(DContact); end; if (DContact.hContact<>0) and (DContact.hContact<>INVALID_HANDLE_VALUE) then begin if QR1.SField[ 1 ]='' then flags:=DBEF_SENT or DBEF_READ else flags:=DBEF_READ; if IsMirandaUnicode then flags:=flags or DBEF_UTF; timestamp:=DateTimeToTimeStamp(QR1.DFieldByName['date']-693594); Msg:=QR1.SFieldByName['subject']; if IsMirandaUnicode then begin tempstr:=ANSIToUTF8(PAnsiChar(Msg),tempstr,cp); Msg:=tempstr; FreeMem(tempstr); end; AddMsgToDB(DContact.hContact,flags,timestamp,Msg,AddedMessages,Duplicates); end; end; except ShowException(ExceptObject,ExceptAddr) end; QR1.Next; DoMessage(ITXT_THREAD_PROGRESS,QR1.CurIndex,0); end; //for end else begin s:=WideFormat(TranslateWideString('Its not %s file'),['ICQ6 mdb']); DoMessage(ITXT_THREAD_ERROR,integer(PWideChar(s)),0); end; finally DS.Free; DS := nil; SS := nil; QR1 := nil; end; end; {$endif}