This helps a bunch! Thanks Robert :) -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Robert Brenstein Sent: Thursday, May 26, 2005 10:30 AM To: How to use Revolution Subject: Re: Conceptual database questions...
>Hello everyone... > >I feel like I am just not getting some basic concepts in trying to use >the Valentina kernal for RunRev. So, I have a few questions: > >1) Is a base object (table) basically a set of columns? It is better to think of a baseObject (table) as a combination of columns and rows: columns are fields and rows are records. Of course, when you work with schema (database structure) records are ignored. >2) A base object can contain zero records, yet you are still allowed to >set the value of a field in a base object. Does setting the value of a >field, without any selected record, basically have no effect? A working (current) record is basically a temporary memory buffer. When a cursor has no records, you can still set values of fields and then use AddRecord to copy them into the database. When your cursor has some records, the current record is loaded into that buffer. When you set the field values, overwriting old data, you can then use either UpdateRecord to modify that record in the database or AddRecord to save the modified record as a new record. If a table has records and you want to add a new record, the easiest is to create a new empty cursor with SqlSelect using Select * From billingdata Where recId=0 >3) Is the following the correct order of events for creating a record: > a) Create database or make sure it exists > b) Create table (base object) or make sure it exists > c) Create columns in table or make sure they already exist > d) add record, at which time that record becomes the selected >record for that table > e) insert information into that record Correct except that d) is creating a cursor. Actual adding is in e). > >4) Since a cursor is a selection of records, can you have a cursor if >the table has zero records? Yes, you can have a cursor when table has no or million records (cf above). Of course, for an empty table, you can have only empty cursor. > >5) When is it necessary, and when is it not necessary but probably >better, to use a cursor rather than working directly with the base >object? To work with data, you must use cursors. However, I think you really mean to ask about using the direct API versus SQL for working with data. Using SQL, you can do the same without explicitely creating cursors. You should not mix these, though, and use either direct API or SQL. >6) Do records have specific IDs, such that I could call up record 57 of >base object "billingdata"? Yes, each record has a so called recId (record id) associated with it. It is essentially a physical number of the record in the table, so it is unique for each record and stays fixed for the lifetime of a given record. I say lifetime, because when you delete records from table, their space is reused for new records, so a newer record gets recId of any of the free (deleted) records if there are any. In order to have recId included in your cursor, you need to list it explicitely in SQLselect query, like Select recId,* From billingdata Select billRefNumber,billOwnerId,recId From billingdata >Thanks, and my apologies if I am asking ignorant questions for which I >should know better. > >Jonathan Hope this will get you going :) Robert Brenstein _______________________________________________ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution _______________________________________________ use-revolution mailing list use-revolution@lists.runrev.com http://lists.runrev.com/mailman/listinfo/use-revolution