James,

No one on earth (and that's no exaggeration...) can speak about R:Base as
comprehensively and eloquently as Razzak Memon!

I've never used Access and don't ever plan to, but I have been converting an
Oracle database into R:Base and just for grins, some simple Oracle code
follows so that you can compare the readability with what you are accustomed
to in R:Base:

CREATE OR REPLACE FUNCTION DA_GET_TOTAL_BILLING_AMOUNT(PARM_CARRIER NUMBER,
PARM_INBOX_STATE NUMBER) RETURN NUMBER IS
FOUND                   BOOLEAN;
WK_TOTAL                DA_BILLING_ALLOCATION.BILLING_AMT%TYPE;
WK_BILLING_COUNT        DA_BILLING_ALLOCATION.BILLING_AMT%TYPE;
WK_DA_FEE               DA_BILLING_ALLOCATION.DA_FEE%TYPE;
CURSOR                  C_GET_AMOUNT(VAR_CARRIER NUMBER, VAR_INBOX_STATE
NUMBER) IS
                                SELECT SUM(A.BILLING_AMT),
COUNT(A.BILLING_AMT)
                                FROM DA_INVOICE_HEADER B,
DA_BILLING_ALLOCATION A, DA_INBOX C
                                WHERE C.INVOICE_ID = B.INVOICE_ID AND
B.INVOICE_ID = A.INVOICE_ID
                                        AND B.CARRIER = VAR_CARRIER AND
C.INBOX_STATE = VAR_INBOX_STATE;
CURSOR                  C_GET_FRONTED_AMOUNT(VAR_CARRIER NUMBER) IS
                                SELECT SUM(A.FRONTED_AMT)
                                FROM DA_INVOICE_HEADER B,
DA_BILLING_ALLOCATION A, DA_INBOX C
                                WHERE C.INVOICE_ID = B.INVOICE_ID AND
B.INVOICE_ID = A.INVOICE_ID
                                AND B.CARRIER = VAR_CARRIER AND
C.INBOX_STATE = 6
                                AND A.FRONTED_AMT > 0;
CURSOR                  C_GET_DA_FEE(VAR_CARRIER NUMBER, VAR_INBOX_STATE
NUMBER) IS
                                SELECT DA_FEE
                                FROM DA_INVOICE_HEADER B,
DA_BILLING_ALLOCATION A, DA_INBOX C
                                WHERE C.INVOICE_ID = B.INVOICE_ID AND
B.INVOICE_ID = A.INVOICE_ID
                                AND B.CARRIER = VAR_CARRIER AND
C.INBOX_STATE = VAR_INBOX_STATE;
BEGIN
        IF PARM_INBOX_STATE = 9 THEN
                OPEN C_GET_FRONTED_AMOUNT(PARM_CARRIER);
                FETCH C_GET_FRONTED_AMOUNT INTO WK_TOTAL;
                FOUND := C_GET_FRONTED_AMOUNT%FOUND;
                CLOSE C_GET_FRONTED_AMOUNT;
                IF NOT FOUND THEN
                        WK_TOTAL := 0;
                END IF;
        ELSE
                OPEN C_GET_DA_FEE(PARM_CARRIER,PARM_INBOX_STATE);
                FETCH C_GET_DA_FEE INTO WK_DA_FEE;
                CLOSE C_GET_DA_FEE;
                OPEN C_GET_AMOUNT(PARM_CARRIER, PARM_INBOX_STATE);
                FETCH C_GET_AMOUNT INTO WK_TOTAL, WK_BILLING_COUNT;
                FOUND := C_GET_AMOUNT%FOUND;
                CLOSE C_GET_AMOUNT;
                IF NOT FOUND THEN
                        WK_TOTAL := 0;
                ELSE
                        WK_TOTAL := WK_TOTAL - (WK_BILLING_COUNT *
WK_DA_FEE);
                END IF;
        END IF;
        RETURN WK_TOTAL;
END DA_GET_TOTAL_BILLING_AMOUNT;
/

> -----Original Message-----
> From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of james
> hageman
> Sent: Thursday, May 19, 2005 1:58 PM
> To: RBG7-L Mailing List
> Subject: [RBG7-L] - off topic
> 
> I am finding myself being required to justify the use of Rbase instead
> of Access at this Univ. Apparently just saying it's way better, see for
> yourself doesn't cut it.
> 
> I am looking for some help in examples of why Rbase is better and that
> is does use a real programming language and a list of major
> organizations that are using rbase. I know Razzak is doing work for the
> FBI and believe the US Navy. Others?
> 
> Thanks much.
> 
> 
> 
> James Hageman, CITA I
> University of Delaware Archives
> 002 Pearson Hall
> Newark ,DE 19716
> 302-831-3127
> [EMAIL PROTECTED]

Reply via email to