'无法打开ID文件'在python中使用win32com.client时

时间:2017-06-06 05:40:31

标签: python lotus win32com userid

我在使用win32com.client从Python连接Lotus Notes时遇到问题。

我使用以下代码:

import win32com.client
import csv # imports the csv module
import sys # imports the sys module
import re

notesServer = "AALMBX01/Server/..."
notesPass = "PASS"

#Connect to notes database on server
notesSession = win32com.client.Dispatch('Lotus.NotesSession')
notesSession.Initialize(notesPass)

db_name = 'mail\iizs.nsf'
db = notesSession.getDatabase(notesServer, db_name)
view = db.GetView("($All)")
doc = view.getFirstDocument()

我收到以下错误:

  

( - 2147352567,'发生例外。',(0,你' NotesSession',你'注意   错误:密码错误。 (密码区分大小写 - 请务必使用   正确的大小写。)'

还尝试将密码留空并禁用LN应用程序的密码请求#39;在界面中。使用空密码,我收到以下错误消息:

  

( - 2147352567,'发生例外。',(0,你' NotesDatabase',u'数据库   AALMBX01 / Server / ... !! mail \ iizs.nsf尚未打开'

我尝试了以下内容:

  1. 使用lnlib和get_session函数。
  2. 检查notus.ini文件是否到位(在我的情况下为C:\ Users \ iizs \ NotesData)并包含对userid的引用(尝试添加userid文件的完整路径,该文件位于C:\ Users \中iizs \ Notes数据\数据)。
  3. 将值添加到HKEY_CURRENT_USER \ Software \ Lotus \ Notes(可选版本)\ NotesIniPath
  4. 将包含notes.ini文件(C:\ Users \ iizs \ NotesData)和user.id文件(C:\ Users \ iizs \ NotesData \ data)的文件夹添加到PATH环境变量中。
  5. 错误仍然相同。尝试将user.id复制到系统文件夹之一(system32) - 也没有帮助。

    有什么建议吗?

1 个答案:

答案 0 :(得分:0)

$leaves = DB::select("SELECT * FROM leaves WHERE emp_id=:emp_id AND status != 'Rejected' AND ((STR_TO_DATE(from_date, '%Y-%m-%d') BETWEEN ':from_date1' AND ':to_date1') OR (STR_TO_DATE(to_date, '%Y-%m-%d') BETWEEN ':from_date2' AND ':to_date2')) OR ((STR_TO_DATE(from_date, '%Y-%m-%d') <= ':from_date3') AND (STR_TO_DATE(to_date, '%Y-%m-%d') >= ':to_date3'))",
      [
        'emp_id'=> (int)$request->emp_id, 'from_date1'=>$request->from_date, 'to_date1'=>$request->to_date,
        'from_date2'=>$request->from_date, 'to_date2'=>$request->to_date,
        'from_date3'=>$request->from_date, 'to_date3'=>$request->to_date
      ]);

HTH !!

此外,发生在我身上的一个问题是网络驱动器 - 如果您的NOTES.INI文件包含网络路径,请尝试删除并在Python代码中添加它:

import win32com.client
import pywintypes
from win32com.client import Dispatch
from win32com.client import constants
notesSession = Dispatch('Lotus.NotesSession')
dir(constants)
dir(notesSession)
Password = 'S3cretP455w0rd'
Server = 'yourserver/yourapp' # yourserver = '' if local
scPath = 'view.nsf'
notesSession.Initialize(Password)