Building data base aps with Rev

Jan Schenkel janschenkel at yahoo.com
Sun May 18 08:42:01 EDT 2003


--- Sadhunathan Nadesan <sadhu at castandcrew.com> wrote:
> Greetings,
> 
> You folks may know that my thing is building data
> base applications,
> and I'm searching for good tools for our company's
> next generation
> of Internet enabled aps.  Consequently dabbling with
> Revolution, but
> consider myself a newbie.
> 
> So anyway, I'd like to see tools for building
> generic screens and such,
> but in absence of those, I'm looking for code
> examples.  Anyone have a
> suggestion for me?
> 
> [snip]
> 
> I'm fervently hoping there are others on this list
> with the same
> interest.
> 
> And thank you in advance.
> 
> Sadhu
> 


Hi Sadhu,

Off the top of my head there are two ways: 

1) Check out the new Query Builder functionality,
which allows you to store queries in a stack, and then
'hook up' buttons and fields

- Create a new stack

- Menu 'Tools' > Item 'Database Query Builder'
- Click on the '+' button to create a new query
- Give the query a name and fill in the connection
parameters
- Click on the 'Connect' button
- Now go to the 'RecordSet' tab
- Select a table, and tweak the SQL query
    Ex: SELECT * FROM locations
- Select the primary key field

- Now place a field on the card
- Open the 'Inspector' palette
- Go to the 'Database' panel
- Select the query you created earlier
- Select the column you want to dsplay in that field
    Ex: location

- Make and link some more fields

- Now place a button on the card
- Open the 'Inspector' palette
- Go to the 'Database' panel
- Select the query you created earlier
- Select the action you want to execute
    Ex: Move to the next record

- Make and link some more buttons to traverse the
records in the query cursor.

-> There you have it, without writing a single line of
code, and you can even refresh and update records if
you want to  *cheers*

2) If you're not afraid of scripting, and are just
populating fields for display, you can do it even more
quickly:

on PopulateFields pConnectionID, pColumns, pTables,
pCondition
  -- asuming you have connected already
  --  pConnectionID = the connection number
  -- now let's make good use of the merge function
  --  pColumns   = the column names
  --  pTables    = the table(s) involved
  --  pCondition = the content of the WHERE-clause
  put merge("SELECT [[pColumns]] FROM [[pTables]]
WHERE [[pCondition]] ;") into tSQLQuery
  put revQueryDatabase(pConnectionID,tSQLQuery) into
tCursor
  if tCursor is not a number then answer tCursor
  else
    repeat with i = 1 to
revDatabaseColumnCount(tCursor)
      put revDatabaseColumnNumbered(i) into field i
    end repeat
  end if
end PopulateFields

Nice and simple, but you'll have more work to do if
you want to update records in the database.
Personally, I prefer to work with the column names,
and that's just as easy to implement, and I like a bit
of error checking as well :

    put revDatabaseColumnNames() into tColumnNames
    repeat for each item tColumnName in tColumnNames
      if there is a field tColumnName then put \
         revDatabaseColumnNamed(tColumnName) into \
         field tColumnName
    end repeat

Hope this gets you going,

Jan Schenkel.

=====
"As we grow older, we grow both wiser and more foolish at the same time."  (La Rochefoucauld)

__________________________________
Do you Yahoo!?
The New Yahoo! Search - Faster. Easier. Bingo.
http://search.yahoo.com



More information about the use-livecode mailing list