thanks again Denes,
I'm running MS SQL 2005 and Web2py 1.98.2.
Note that from the shell interface, the following works:
db.web2pytest_leg.insert(LoadID=2, LoadName='DirectInsert')
db.commit()

Here's my table (Note: the original table did not have a LoadID, I
added it to test an int PK):
CREATE TABLE [dbo].[web2pytest_leg](
        [LoadID] [int] NOT NULL,
        [LoadName] [varchar](50) COLLATE Latin1_General_CI_AS NOT NULL,
        [DestinationName] [varchar](50) COLLATE Latin1_General_CI_AS NULL,
        [Description] [varchar](50) COLLATE Latin1_General_CI_AS NULL,
 CONSTRAINT [PK_web2pytest_leg] PRIMARY KEY CLUSTERED
(
        [LoadID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

db.py (connect details have been changed):
db = DAL('mssql://username:password@server/database')

db.define_table('web2pytest_leg',
                Field('LoadID', 'integer'),
                Field('LoadName', 'string'),
                Field('DestinationName', 'string'),
                Field('Description', 'string'),
                primarykey=['LoadID'],
                migrate=False
                )

Controller:
Controller:
# coding: utf8
# try something like

response.menu = [['Register Legacy Item', False, URL(r=request,
                 f='web2pytest_leg')]]

def web2pytest_leg():
    '''
    This is a test of a Legacy Table in SQL Server

    simple data entry form with validation and database.insert()
    also lists all records currently in the table
    '''

    # ## create an insert form from the table
    form = SQLFORM(db.web2pytest_leg)

    # ## if form correct perform the insert

    if form.accepts(request.vars, session):
        response.flash = 'new record inserted'
    elif form.errors:
        response.flash= 'form is invalid'
    else:
        response.flash = 'please fill in the form' +
str(request.vars)

    # ## and get a list of all users

    records =
SQLTABLE(db().select(db.web2pytest_leg.ALL),headers='fieldname:capitalize')
    return dict(form=form, records=records)

View:

{{extend 'layout.html'}}
<h1>This is the MaxLoad Web2PyTest_leg.html template</h1>

{{=form}}

<h2>Submitted variables</h2>
{{=BEAUTIFY(request.vars)}}
<h2>Accepted variables</h2>
{{=BEAUTIFY(form.vars)}}
<h2>Errors in form</h2>
{{=BEAUTIFY(form.errors)}}

<h2>Current Rows</h2>
<p> List of rows in web2pytest </p>

{{=records}}


Many Thanks
Andrew



On Aug 9, 1:20 am, DenesL <denes1...@yahoo.ca> wrote:
> Hi Andrew,
>
> could you post your model and controller?.
> MSSQL is indeed supported (I use it every day) and from your
> description it sounds like it should work but without the code it is
> impossible to say where the problem might be.
> Also, which version of web2py are you using?.
>
> Denes.
>
> On Aug 8, 12:33 am, Andrew <awillima...@gmail.com> wrote:
>
>
>
> > Hello,  I'm doing the most simple form to test out Keyed Table
> > Functionality.  I've followed some examples from the examples app and
> > some code from the web2py book.  My DBMS is MS SQL.
>
> > When I enter some data on my basic entry form and press submit,
> > nothing happens.  In order to debug I added the following from the
> > book to my view:
>
> > <h2>Submitted variables</h2>
> > {{=BEAUTIFY(request.vars)}}
> > <h2>Accepted variables</h2>
> > {{=BEAUTIFY(form.vars)}}
> > <h2>Errors in form</h2>
> > {{=BEAUTIFY(form.errors)}}
>
> > The request.vars has the values I've entered, but the keyed column in
> > form.vars is "None".  Nothing in form.errors.
> > From Ch7, I understand that the form.accepts in the controller filters
> > the request.vars (by validators) and populates form.vars.  So why is
> > my key columnnotvalidating ?  My table definition doesn't have any
> > validators except for:
> > primarykey=['LoadID'],
> > migrate=False
>
> > I've tried an integer Key, a string Key but no difference.
>
> > Am I missing something ?  Thanks.- Hide quoted text -
>
> - Show quoted text -

Reply via email to