Re: DAO and Access97 WHERE clause fails



Hello all.
Thanks for the help! John pointed out to me the flaw in my code:
Change:
sSQL3 = 'SELECT * FROM T_Index2DirName WHERE iIndex = hsDB'
to:
sSQL3 = 'SELECT * FROM T_Index2DirName WHERE iIndex = %ld' % hsDB
That did the trick. I had looked at the statement so often that it was
*obviously* correct.
John also pointed me to the DAO help file that I had not been able to find.
Dennis also pointed out the correction, but went on to educate me much more
on what I was trying to do.
BTW, I had searched extensivly on line for the answer before posting, but
was missing the obvious, stupid coding error.
Thanks to all for getting me back on track!
--Vic


"v.davis2" <v.davis2@xxxxxxx> wrote in message
news:Okmai.403919$7g3.312911@xxxxxxxxxxxxxxx
Hi all,

I am attempting to use Access97 as the database to hold the results of a
python script. I seem to be able to make simple SELECT clauses work (like
SELECT * FROM TableName), but have not been able to figure out how to add
a WHERE clause to that (e.g., SELECT * FROM TableName WHERE myFieldName =
34) This fails complaining that the wrong number of parameters are
present.
I haved tried DAO36 and I have tried the ADO version with the same
results. Therefore I have to conclude it is my screwup!
Help in the forum or via email would sure be appreciated!
(v.davis2@xxxxxxx)

Here is the skeleton code:

import win32com.client
daoEngine = win32com.client.Dispatch('DAO.DBEngine.35')
sDBname = 'vpyAnalyzeDirectorySize.mdb'
sDB = 'c:\\documents and settings\\vic\\my
documents\\tools\\python25\\_myscripts\\'+sDBname
daoDB = daoEngine.OpenDatabase(sDB)

sSQL1 = 'SELECT * FROM T_Index2DirName'
daoRS = daoDB.OpenRecordset(sSQL1) # this works FINE and I can
play with the record set

#<snip>

hsDB = hash(sDB)
sSQL3 = 'SELECT * FROM T_Index2DirName WHERE iIndex = hsDB' # names are
all correct in mdb file
daoRStest = daoDB.OpenRecordset(sSQL3) # this FAILS, even though the
record is there

daoRS.Close()


Traceback (most recent call last):
File "C:\Documents and Settings\Vic\My
Documents\Tools\python25\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py",
line 310, in RunScript
exec codeObject in __main__.__dict__
File "C:\Documents and Settings\Vic\My
Documents\Tools\python25\_MyScripts\TestForPosting01.py", line 14, in
<module>
daoRStest = daoDB.OpenRecordset(sSQL3) # this FAILS, even though
record is there
File "C:\Documents and Settings\Vic\My
Documents\Tools\python25\lib\site-packages\win32com\gen_py\00025E01-0000-0000-C000-000000000046x0x5x0.py",
line 523, in OpenRecordset
, Type, Options, LockEdit)
com_error: (-2147352567, 'Exception occurred.', (0, 'DAO.Database', 'Too
few parameters. Expected 1.', 'jeterr35.hlp', 5003061, -2146825227), None)



.



Relevant Pages

  • Re: writing data to a tab delimited text file?
    ... the vbTab was what I was missing. ... end of each variable and that did the trick. ... Thanks for posting the ...
    (microsoft.public.excel.programming)
  • Re: Cant enter text into rich edit (not buffer size related)
    ... I should just immediately post these questions, ... inevitably figure out the answer just after posting! ... It was a trick being ... played in the message loop that was causing TranslateMsg not to be called. ...
    (microsoft.public.win32.programmer.ui)
  • Re: Counting with distinct - Optimizer Problems
    ... Nice trick, Uri. ... I'll add that Shawn isn't missing anything, ...
    (microsoft.public.sqlserver.programming)
  • Re: Retrieving registry value
    ... going to do the trick. ... I've found the CRegKey Class and its methods ... (specifically QueryStringValue), but I'm missing the code to alias the ...
    (microsoft.public.vb.general.discussion)
  • Re: Compiling a console app
    ... That's an interesting trick. ... Thanks for posting it. ... but I haven't had any problems with moving projects to 2008 from 2005. ... but fails if I use the older 2005 one. ...
    (microsoft.public.vc.mfc)