Just one thing to add, Jim:

Set Var vXyx_Txt TEXT = NULL
Set Var vXyz_Int INTEGER=NULL

then to convert values use:

Set Var vXyz_Int = .vXyz_Txt
Set Var vXyz_Txt = (CTXT(.vXyz_Int)

so that the variable type is not changed - ever!!

Regards,
Alastair.



----- Original Message ----- 
From: "Jim Limburg" <[EMAIL PROTECTED]>
To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
Sent: Thursday, September 11, 2003 3:00 PM
Subject: [RBASE-L] - Re: Create variable on the fly


> Bill, Alastait, James, listmembers.. Fourscore and seven... hmm.hhmmmm
>
> Interesting idea of getting used to using the same variables all the way
> through... Cold make smaller routines easy, but think it would make larger
> routines hard to keep track of.  I have always leaned toward the
> more descriptive (somewhat self documenting) declaring/naming of
variables.
> Along with this idea have gotten into the habit that were suggested by
> some of gurus on this list of using a prefix based on how the var is going
> to be used... I use
>
> vm_    for variables that I use in what I call a module/function role
> vg_    for variables that are going to be of a more global basis, that is
>         I will need it across more that one module/function
> vp_    for variables that are going to be used in stored procedures
>
> ve_    for variables that are going to be used in a quick eep
>
> vf_    for variables that are used in a forms scope
> vr_    for variables that are used in a reports scope
>
> and so on.
>
> Then when I need to clear them (like you say) at the end of the routine
> the I would use CLEAR VAR vm_% which would just clear out just only
> what I had used in the module/function of code. or... at application
> end CLEAR VAR v%
>
> I have thought of but never implemented using a convetion that would
> also let me easily see what the datatype should be like..
>
> vm_t  for all text variable
> vm_i  for all integers
> vm_c  for currency
> vm_d  for date
> vm_r  for real
> vm_dt for datetime
> vm_tm for time
> vm_v  for varbit
> vm_db for double
> vm_b  for bit
> vm_bn for bitnote
> vm_n  for note
>
> and so on.
>
> I have used this code below provided by the great Troy Sosamon for
> predfining some variables before the call of a form. I have
> modified Troy's original version for own needs here.
>
> -- ARRAY SIMMULATION PROGRAM
> -- EXAMPLE WRITTEN BY TROY SOSAMON  1/4/98
> -- EXAMPLE MODIFIED BY JIM LIMBURG  09-11-2003
> SET VAR vname TEXT = 'vf_value'
> SET VAR vtemp TEXT = NULL
> -- ASSIGN VALUES TO VARS vf_value0 - 10
> SET VAR vi INT = 0
> WHILE vi <= 10 THEN
>    SET VAR vtemp = (.vname + (CTXT(.vi)))
>    SET VAR &vtemp = NULL
>    SET VAR vi = (.vi + 1)
> ENDWHILE
>
>
> Jim
>
> William Stacy wrote:
> > I agree with you completely.  I have a command file that runs every time
> > I start my app, and it looks something like:
> >
> > set v i1 int=null
> > set v i2 int=null
> > set v i3 int=null
> > set v t1 text=null
> > set v t2 text=null
> > set v d1 date=null
> > set v d2 date=null
> > set v  n1 num(4,2,)=null
> > set v  count_of_pn int=0
> >
> > and I have about 2 pages of this kind of stuff that presets all my
> > variables with a null, zero or whatever
> > default/starting value I want.
> >
> > I NEVER use the CLEAR VAR command, instead just reset /reuse all these
> > preset variables using the
> > very compact syntaxes of:
> >
> > d1=.#date
> > i1=0
> > t1='y'
> > t2=null
> > and so on.
> > Very compact, clean and lean, and the fastest, because it's so easy on
> > the CPU
> >
> > I've always suspected that clearing variables created a memory leak, but
> > cannot prove it.
> > But it surely causes more typing when coding!
> >
> > bill
> >
> >
> > Alastair Burr wrote:
> >
> >>Whilst I appreciate that it is sometimes nice to know if a variable
already
> >>exists (and, if so, maybe even its value) but I would suggest that it is
> >>much better to declare _all_ of them at the start of your app/cmd
> >>file/eep/whatever and _never_ clear them until the end.
> >>
> >>Of course there will always be exceptions but I have found it much
easier to
> >>be able to see all the vars at the top of the file and their data type
in
> >>one place. If I need to reset any I simply set it to null or a specific
> >>value before use.
> >>
> >>Would anybody like to comment on the overhead of keeping variables
defined
> >>against regularly setting and clearing them (and, maybe losing them)?
With
> >>computing power such as it is these days can a practical limit be
reached?
> >>
> >>Regards,
> >>Alastair.
> >>
> >>
> >>----- Original Message ----- 
> >>From: "James Hageman" <[EMAIL PROTECTED]>
> >>To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
> >>Sent: Wednesday, September 10, 2003 9:24 PM
> >>Subject: [RBASE-L] - Re: Create variable on the fly
> >>
> >>
> >>
> >>
> >>>I like that, short and sweet. However it does give a warning about
> >>>setting the variable to NULL without indicator variable or something,
> >>>but it still works and holds the assigned value if it is defined. Cool
> >>>Thanks Jim
> >>>James
> >>>
> >>>
> >>>Jim Limburg wrote:
> >>>
> >>>
> >>>
> >>>>James
> >>>>
> >>>>Just use
> >>>>
> >>>>SET VAR v1 TEXT
> >>>>
> >>>>... or whatever datatype is is delcared to as before. Be sure to
> >>>>keep the datatypes the same though..
> >>>>
> >>>>Don't set it to null. Doing it this way will not clear the variables
> >>>>setting if it already exist, but well set it to NULL if it doesn't
> >>>>
> >>>>
> >>exist.
> >>
> >>
> >>>>Jim Limburg
> >>>>
> >>>>
> >>>>
> >>>>James Hageman wrote:
> >>>>
> >>>>
> >>>>
> >>>>>I want to be able to find out if a variable exists and if not to
> >>>>>create it and then pronpt the user to assign a value to it.
> >>>>>
> >>>>>I thought I could do something like :
> >>>>>
> >>>>>IF (IFEXIST(v1,.v1,NULL)) IS NULL THEN
> >>>>>     DIALOG 'Enter value for v1' v1 vEndKey 1
> >>>>>ENDIF
> >>>>>
> >>>>>But I get an error message telling me v1 doesnt exist, Right! I know.
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>
> >>.
> >>
> >>
> >>
>

Reply via email to