The article also notes that the IBAN is country dependent. If you go to the 
country
listing  (BBAN format column) you will note that almost all the countries  can 
be handled by use
of the BIGNUM datatype.Guatemala and possibly Greece might be questionable.
Note, other web sources seem to imply that some form of internet access is 
needed/required
while validating the IBAN. Specifically up to date access of country 
information.

The concept seems simple but complexity lies hidden with needed coding. See 
perhaps

http://ibanfuncs.codeplex.com/  which is an open source place to find needed 
coding.

Jim Bentley,
American Celiac Society
1-504-737-3293


________________________________
 From: Tony IJntema <[email protected]>
To: RBASE-L Mailing List <[email protected]> 
Sent: Thursday, May 2, 2013 9:31 AM
Subject: [RBASE-L] - Re: European IBAN (International Bank Account Number) 
check digit calculation
 

Mike,

I'm afraid the maximum total length needed is even longer than 38 characters
(which is the maximum length of bignum).
The article, which Jim refers to, contains the statement you need a 128 bit
integer.

Tony

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Mike Byerley
Sent: donderdag 2 mei 2013 15:43
To: RBASE-L Mailing List
Subject: [RBASE-L] - Re: European IBAN (International Bank Account Number)
check digit calculation

Or a 64 bit integer.

----- Original Message -----
From: "James Bentley" <[email protected]>
To: "RBASE-L Mailing List" <[email protected]>
Sent: Thursday, May 02, 2013 5:36 AM
Subject: [RBASE-L] - Re: European IBAN (International Bank Account Number)
check digit calculation


Tony,

The following Wikipedia article has a section on computing the mod if a
computer language cannot handle 30 digit integers.
http://en.wikipedia.org/wiki/International_Bank_Account_Number

Per RBase V9.1 64 bit or V9.5 64 bit documentation, the BIGNUM data type can
hold the derived integer.
From the Wikipedia article you can enter set var d bignum (30,0) =
3214282912345698765432161182
Show var:
Variable = Value Type
-------------------- ------------------------------ ------- #DATE =
05/02/2013 DATE #TIME = 4:14:02 TIME #PI = 3.14159265358979 DOUBLE SQLCODE =
0 INTEGER SQLSTATE = 00000 TEXT #NOW = 05/02/2013 4:14:02 DATETIME d =
3214282912345698765432161182 BIGNUM (30, 0)

you are correct that the mod function does not handle BIGNUM as a valid data
type
R>set var dy integer = (mod(.d,97))
-ERROR- Unrecognized command - retype it ( 40)

Certainly, an enhancement request to add BIGNUM as acceptable argument for
MOD function would be in order.
In the meantime you could used the method described in the Wikipedia article
to create a Stored Procedure (function) to process the number in parts.




Jim Bentley,
American Celiac Society
1-504-737-3293


________________________________
From: Tony IJntema <[email protected]>
To: RBASE-L Mailing List <[email protected]>
Sent: Thursday, May 2, 2013 2:20 AM
Subject: [RBASE-L] - European IBAN (International Bank Account Number) check
digit calculation


Hi,

In 2014 we will have to use a new bank account number in Europe.

It looks like this: NL91ABNA0417164300

91 is a check digit

This check digit is a result of a mod 97 operation.

The calculation that needs to be performed is:

(mod(101123100417164300232100,97))

(The length of the figure is 24 characters)

The result = 7

The check digit then becomes 98 - 7 = 91

My question is: This figure is too big for a modular operation and bignums
are not allowed in the mod function. Does anybody know a workaround?


N.B.

To rules to create the long figure are:

Change the IBAN to: ABNA0417164300NL00 (Put NL (=countrycode) after the
figure and add two zeroes to it.
Replace all letters by it's position in the Alphabet and add 9 to this
number ( A = 10, B = 11, and so on)

Tony 

Reply via email to