From b5ecb07dcf78667db73b8fad9480118b4c009f8b Mon Sep 17 00:00:00 2001 From: Alexey Kulakov Date: Wed, 4 Jul 2012 07:14:19 +0000 Subject: Changed to support latest PluginInfoEx structure git-svn-id: http://svn.miranda-ng.org/main/trunk@748 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/ImportTXT/BICQ6IP(ADO).inc | 103 +++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 plugins/ImportTXT/BICQ6IP(ADO).inc (limited to 'plugins/ImportTXT/BICQ6IP(ADO).inc') diff --git a/plugins/ImportTXT/BICQ6IP(ADO).inc b/plugins/ImportTXT/BICQ6IP(ADO).inc new file mode 100644 index 0000000000..b4c85e5d05 --- /dev/null +++ b/plugins/ImportTXT/BICQ6IP(ADO).inc @@ -0,0 +1,103 @@ +{$IFDEF BIN_IMPORT_} + +var + QR1: TADOQuery; + +var + OneContact: boolean; + flags: integer; + timestamp: LongWord; + Msg: AnsiString; + ADOConnection:TADOConnection; + +function FindUIDinDB(too: string): string; +var + QR2: TADOQuery; +begin + QR2 := TADOQuery.Create(nil); + QR2.Connection := ADOConnection; + QR2.SQL.Text := 'select to, UID from ChatHistory WHERE to=' + too; + QR2.Open; + QR2.First; + result := QR2.FieldByName('UID').AsString; + QR2.Close; + QR2.Free; +end; + +{$ELSE} + +begin + DoUnMapFile; + OneContact := (DContact.hContact <> 0) and (DContact.hContact <> INVALID_HANDLE_VALUE); + try +// coInitialize(nil); + ADOConnection:=TADOConnection.Create(nil); + ADOConnection.Connected:=false; + ADOConnection.LoginPrompt:=false; + ADOConnection.Provider:='Microsoft.Jet.OLEDB.4.0'; + ADOConnection.ConnectionString := + 'User ID=Admin;' + + 'Data Source=' + FileName + + ';Mode=Share Deny None;' + + 'Extended Properties="";' + + 'Locale Identifier=1033;' + + 'Persist Security Info=False;'; + + ADOConnection.Connected:=true; + + QR1 := TADOQuery.Create(nil); + QR1.Connection := ADOConnection; + QR1.SQL.Text := 'SELECT Messages.from, date, to, type, subType, subject FROM Messages'; + QR1.Open; + if (QR1.FieldCount = 7) then + begin + DoMessage(ITXT_THREAD_START, 0, 0); + QR1.First; + DoMessage(ITXT_THREAD_MAXPROGRESS, 0, QR1.RecordCount); + While not QR1.EOF do + begin + try + if (QR1.FieldByName('type').AsString = 'Text') and + (QR1.FieldByName('subType').AsString = 'IM') then + begin + UIDStr := FindUIDinDB(QR1.FieldByName('to').AsString); + 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.Fields[1].AsString = '' then + flags := DBEF_READ or DBEF_UTF or DBEF_SENT + else + flags := DBEF_READ or DBEF_UTF; + timestamp := DateTimeToTimeStamp(QR1.FieldByName('date').AsDateTime - 693594); + Msg := QR1.FieldByName('subject').AsString; + tempstr := ANSIToUTF8(PAnsiChar(Msg), tempstr, cp); + Msg := tempstr; + FreeMem(tempstr); + AddMsgToDB(DContact.hContact, flags, timestamp, Msg, AddedMessages, Duplicates); + end; + end; + except + ShowException(ExceptObject, ExceptAddr) + end; + QR1.Next; + DoMessage(ITXT_THREAD_PROGRESS, QR1.RecNo, 0); + end; // for + end + else + begin + s := WideFormat(TranslateWideString('Its not %s file'), ['ICQ6 mdb']); + DoMessage(ITXT_THREAD_ERROR, wparam(PWideChar(s)), 0); + end; + finally + QR1.Close; + QR1.Free; + ADOConnection.Close; + ADOConnection.Free; + end; +end; +{$ENDIF} -- cgit v1.2.3