Re: Only want to insert a record




"Daniel Crichton" <msnews@xxxxxxxxxxxxxxxxxx> wrote in message
news:eT9WjlgFGHA.984@xxxxxxxxxxxxxxxxxxxxxxx
>
> "Dave" <dave5398@xxxxxxxxxxxxxx> wrote in message
> news:el5ghQeFGHA.3700@xxxxxxxxxxxxxxxxxxxxxxx
>>
>> "Daniel Crichton" <msnews@xxxxxxxxxxxxxxxxxx> wrote in message
>> news:%23ULG0EeFGHA.2444@xxxxxxxxxxxxxxxxxxxxxxx
>>>
>>> "Dave" <dave5398@xxxxxxxxxxxxxx> wrote in message
>>> news:eOuM54dFGHA.3892@xxxxxxxxxxxxxxxxxxxxxxx
>>>> I'm trying again to develop my web application locally using IIS and
>>>> asp scripting with a local MS Access database. I have never managed to
>>>> update or insert a record using scripting. I can seem to display
>>>> records ok but any attempt to amend records seems to fail. I tried
>>>> using recordsets then read in MS documentation you should execute a
>>>> direct command. My latest failed attempt is this:
>>>>
>>>> ConnectionString = ".....etc"
>>>> Conn.Mode=3
>>>> Conn.Open(ConnectionString)
>>>> sql="INSERT INTO Users (Name, Password) VALUES ('Jim', 'Hello')"
>>>> Conn.Execute sql
>>>>
>>>> The sql works fine within Access itself. When executed within an asp
>>>> page however I get:
>>>>
>>>> Error Type:
>>>> Microsoft JET Database Engine (0x80004005)
>>>> Operation must use an updateable query.
>>>>
>>>> Can anyone please help, I've been trying for months.
>>>
>>> Do you have a primary key on that table? The error message suggests not.
>>> Also try adding [] around your table and column names - in some system
>>> Name and Password are reserved words, and ADO or the OLE DB driver may
>>> be trying to interpret them as such. Also drop the Mode property, I've
>>> never needed to use this myself as I believe the default is to not set
>>> any permissions, which lets you do whatever your user permissions allow.
>>>
>>> sql="INSERT INTO [Users] ([Name], [Password]) VALUES ('Jim', 'Hello')"
>>>
>>>
>>> Dan
>>
>> Dan,
>>
>> Thanks but still no look. I did all of the above and still get the same
>> result. Any reason why calling ADO from a script should be different to
>> calling it from MS Access or VB?
>>
>
> In Access the native parser is doing all the work. Via ADO it's being
> handled by the Jet engine via the OLE DB provider, so is not completely
> native. When you say "VB", how is that different from a script? Are you
> saying it's working using VB? What version of VB?

Possibly a permissions issue involving the "IUSR_*" (anonymous web user)?
Maybe that user context only has read-only permissions to the .mdb file?

Running a VB program (or VBA in Access) permissions are those of the
logged-in user; not so from within an ASP script.

So if you're attempting to access the web site anonymously, you'll need to
make sure the user account used for that anonymous context has sufficient
privileges to use that file (which will include file create in the parent
directory.)

That being said, a much better plan would be to migrate to SQL Server as
your DB back-end. Reasons:

1. Its 'lite' version costs nothing, just like Jet/Access
2. Its facility for concurrency is almost infinitely better than Jet's
3. If/when your site needs/justifies full-blown SQL Server, your code
will need no changes

(It will not circumvent IUSR security issues, it will merely change them
some.)


-Mark



> Dan
>


.



Relevant Pages