diff options
author | Alexey Kulakov <panda75@bk.ru> | 2012-07-04 07:14:19 +0000 |
---|---|---|
committer | Alexey Kulakov <panda75@bk.ru> | 2012-07-04 07:14:19 +0000 |
commit | b5ecb07dcf78667db73b8fad9480118b4c009f8b (patch) | |
tree | 49c4e729d15133e5f21f36a3f0f425397216d567 /plugins/ImportTXT/BICQ6IP(ADO).inc | |
parent | 2cdbd854380cf89ef6179d20e70baf1f20931583 (diff) |
Changed to support latest PluginInfoEx structure
git-svn-id: http://svn.miranda-ng.org/main/trunk@748 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/ImportTXT/BICQ6IP(ADO).inc')
-rw-r--r-- | plugins/ImportTXT/BICQ6IP(ADO).inc | 103 |
1 files changed, 103 insertions, 0 deletions
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}
|