SlideShare a Scribd company logo
Ring Documentation, Release 1.3
1
2
3
4
5
6
7
8
9
10
28.14 Get Active Source File Name
We can get the active source file name (*.ring) using the filename() function
Syntax:
filename() ---> String contains the active source file name.
Example:
see "Active Source File Name : " + filename() + nl
Output:
Active Source File Name : testsfilename.ring
Example:
if sysargv[2] = filename()
see "I'm the main program file!" + nl
# we can run tests here!
else
see "I'm a sub file in a program" + nl
ok
28.15 PrevFileName() Function
Using the PrevFileName() function we can get the previous active source file name.
The previous file would be the file of the caller function, Or the file of the function that we called before calling
PrevFileName().
Syntax:
prevfilename() ---> String contains the previous source file name.
Example:
The next function in stdlib.ring uses the PrevFileName() to know if the file of the caller function is the main source
file of the program or not.
Func IsMainSourceFile
if PrevFileName() = sysargv[2]
return true
ok
return false
28.14. Get Active Source File Name 148
Ring Documentation, Release 1.3
28.16 CurrentDir() Function
Return the path of the current directory
Syntax:
CurrenDir() ---> String contains the path of the currect directory
28.17 ExeFileName() Function
Return the Ring executable file name
Syntax:
exefilename() ---> String contains the Ring executable file name
28.18 ChDir() Function
Change the current directory
Syntax:
ChDir(cNewPath)
28.19 ExeFolder() Function
Return the Ring executable file path
Syntax:
exefolder() ---> String contains the Ring executable path
28.20 Version() Function
Return the Ring version
Syntax:
version() ---> String contains the Ring version
Output:
1.3
28.16. CurrentDir() Function 149
CHAPTER
TWENTYNINE
EVAL() AND DEBUGGING
In this chapter we are going to learn about
• Error Handling using Try/Catch/Done
• Eval() function
• Raise() function
• Assert() function
29.1 Try/Catch/Done
Syntax:
Try
Statements...
Catch
Statements...
Done
The statements in the Try block will be executed, if any error happens then the statements in the catch block will be
executed.
Inside the catch block we can use the variable cCatchError to get the error message
Example:
Try
see 5/0
Catch
see "Catch!" + nl + cCatchError
Done
Output:
Catch!
Error (R1) : Cann't divide by zero !
29.2 Eval() Function
We can execute code during the runtime from string using the Eval() function
Syntax:
150
Ring Documentation, Release 1.3
Eval(cCode)
Example:
Eval("nOutput = 5+2*5 " )
See "5+2*5 = " + nOutput + nl
Eval("for x = 1 to 10 see x + nl next")
Eval("func test see 'message from test!' ")
test()
Output:
5+2*5 = 15
1
2
3
4
5
6
7
8
9
10
message from test!
29.3 Raise() Function
We can raise an exception using the Raise() function
Syntax:
Raise(cErrorMessage)
The function will display the error message then end the execution of the program.
We can use Try/Catch/Done to avoid exceptions generated by raise() function.
Example:
nMode = 10
if nMode < 0 or nMode > 5
raise("Error : nMode not in the range 1:4")
ok
Output:
Line 4 Error : nMode not in the range 1:4
In raise in file testsraise.ring
Example:
try
testmode(6)
catch
see "avoid raise!"
done
testmode(-1)
29.3. Raise() Function 151
Ring Documentation, Release 1.3
func testmode nMode
if nMode < 0 or nMode > 5
raise("Error : nMode not in the range 1:4")
ok
Output:
avoid raise!
Line 12 Error : nMode not in the range 1:4
In raise In function testmode() in file testsraise2.ring
called from line 7 in file testsraise2.ring
29.4 Assert() Function
We can use the Assert() function to test conditions before executing the code
If the test fail the program will be terminated with an error message contains the assert condition.
Syntax:
Assert( condition )
Example:
x = 10
assert( x = 10)
assert( x = 100 )
Output:
Line 3 Assertion Failed!
In assert in file testsassert.ring
29.4. Assert() Function 152
CHAPTER
THIRTY
DEMO PROGRAMS
In this chapter we will see simple demo programs
• Language Shell
• Main Menu
30.1 Language Shell
We can create simple interactive programming environment using the next program
while true
see nl + "code:> "
give cCode
try
eval(cCode)
catch
see cCatchError
done
end
Output:
code:> see "hello world"
hello world
code:> for x = 1 to 10 see x + nl next
1
2
3
4
5
6
7
8
9
10
code:> func test see "Hello from test" + nl
code:> test()
Hello from test
code:> bye
153
Ring Documentation, Release 1.3
30.2 Main Menu
Example:
# Demo Program
while true
see "
Main Menu
===========
[1] Say Hello
[2] Sum two numbers
[3] Stars
[4] Fact
[5] Exit
" give nMenu see nl
# we can use Switch-ON-Other-OFF instead of IF-BUT-ELSE-OK
Switch nMenu
On 1 sayhello()
On 2 Sum()
On 3 Stars()
On 4
see "Enter Number : " give x
see "Output : "
Try
see Fact(number(x))
Catch
see "Error in parameters!" + nl
Done
On "5" return
Other see "bad option" + nl
Off
end
func sayhello
see "Enter your name ? " give fname
see "Hello " + fname + nl
func sum
see "number 1 : " give num1 see "number 2 : " give num2
see "Sum : " see 0 + num1 + num2
func stars
for x = 1 to 10
see space(8)
for y = 1 to x see "*" next see nl
next
func fact x if x = 1 return 1 else return x * fact(x-1) ok
30.2. Main Menu 154
Ring Documentation, Release 1.3
func space x y = "" for t=1 to x y += " " next return y
Output:
Main Menu
===========
[1] Say Hello
[2] Sum two numbers
[3] Stars
[4] Fact
[5] Exit
1
Enter your name ? Mahmoud Fayed
Hello Mahmoud Fayed
Main Menu
===========
[1] Say Hello
[2] Sum two numbers
[3] Stars
[4] Fact
[5] Exit
2
number 1 : 3
number 2 : 4
Sum : 7
Main Menu
===========
[1] Say Hello
[2] Sum two numbers
[3] Stars
[4] Fact
[5] Exit
3
*
**
***
****
*****
******
*******
********
*********
**********
Main Menu
===========
[1] Say Hello
[2] Sum two numbers
30.2. Main Menu 155
Ring Documentation, Release 1.3
[3] Stars
[4] Fact
[5] Exit
4
Enter Number : 5
Output : 120
Main Menu
===========
[1] Say Hello
[2] Sum two numbers
[3] Stars
[4] Fact
[5] Exit
5
30.2. Main Menu 156
CHAPTER
THIRTYONE
ODBC FUNCTIONS
This chapter contains the ODBC functions provided by the Ring programming language.
• odbc_init()
• odbc_drivers()
• odbc_datasources()
• odbc_close()
• odbc_connect()
• odbc_disconnect()
• odbc_execute()
• odbc_colcount()
• odbc_fetch()
• odbc_getdata()
• odbc_tables()
• odbc_columns()
• odbc_autocommit()
• odbc_commit()
• odbc_rollback()
31.1 odbc_init() Function
We can create ODBC Handle using the odbc_init() function
Syntax:
odbc_init() ---> ODBC Handle
31.2 odbc_drivers() Function
We can get a list of ODBC drivers using the odbc_drivers() function
Syntax:
157

More Related Content

PDF
The Ring programming language version 1.5.2 book - Part 26 of 181
PDF
The Ring programming language version 1.9 book - Part 34 of 210
PDF
The Ring programming language version 1.2 book - Part 16 of 84
PDF
The Ring programming language version 1.5.4 book - Part 27 of 185
PDF
The Ring programming language version 1.7 book - Part 30 of 196
PDF
The Ring programming language version 1.10 book - Part 35 of 212
PDF
The Ring programming language version 1.4 book - Part 7 of 30
PDF
The Ring programming language version 1.4 book - Part 5 of 30
The Ring programming language version 1.5.2 book - Part 26 of 181
The Ring programming language version 1.9 book - Part 34 of 210
The Ring programming language version 1.2 book - Part 16 of 84
The Ring programming language version 1.5.4 book - Part 27 of 185
The Ring programming language version 1.7 book - Part 30 of 196
The Ring programming language version 1.10 book - Part 35 of 212
The Ring programming language version 1.4 book - Part 7 of 30
The Ring programming language version 1.4 book - Part 5 of 30

What's hot (20)

PDF
The Ring programming language version 1.8 book - Part 32 of 202
PDF
The Ring programming language version 1.10 book - Part 28 of 212
PDF
The Ring programming language version 1.10 book - Part 101 of 212
PDF
The Ring programming language version 1.6 book - Part 29 of 189
PDF
The Ring programming language version 1.4.1 book - Part 5 of 31
PPTX
Dts x dicoding #2 memulai pemrograman kotlin
PDF
The Ring programming language version 1.3 book - Part 23 of 88
PDF
The Ring programming language version 1.5.2 book - Part 19 of 181
PDF
The Ring programming language version 1.9 book - Part 40 of 210
PDF
The Ring programming language version 1.5.3 book - Part 27 of 184
PDF
The Ring programming language version 1.5 book - Part 5 of 31
PDF
The Ring programming language version 1.2 book - Part 10 of 84
PDF
Java VS Python
PPTX
Unit Testing with Foq
PDF
The Ring programming language version 1.5.1 book - Part 25 of 180
PDF
The Ring programming language version 1.5.4 book - Part 32 of 185
PDF
The Ring programming language version 1.2 book - Part 11 of 84
PDF
The Ring programming language version 1.2 book - Part 12 of 84
PDF
The Ring programming language version 1.6 book - Part 34 of 189
PDF
Are we ready to Go?
The Ring programming language version 1.8 book - Part 32 of 202
The Ring programming language version 1.10 book - Part 28 of 212
The Ring programming language version 1.10 book - Part 101 of 212
The Ring programming language version 1.6 book - Part 29 of 189
The Ring programming language version 1.4.1 book - Part 5 of 31
Dts x dicoding #2 memulai pemrograman kotlin
The Ring programming language version 1.3 book - Part 23 of 88
The Ring programming language version 1.5.2 book - Part 19 of 181
The Ring programming language version 1.9 book - Part 40 of 210
The Ring programming language version 1.5.3 book - Part 27 of 184
The Ring programming language version 1.5 book - Part 5 of 31
The Ring programming language version 1.2 book - Part 10 of 84
Java VS Python
Unit Testing with Foq
The Ring programming language version 1.5.1 book - Part 25 of 180
The Ring programming language version 1.5.4 book - Part 32 of 185
The Ring programming language version 1.2 book - Part 11 of 84
The Ring programming language version 1.2 book - Part 12 of 84
The Ring programming language version 1.6 book - Part 34 of 189
Are we ready to Go?
Ad

Similar to The Ring programming language version 1.3 book - Part 18 of 88 (20)

PDF
The Ring programming language version 1.5.3 book - Part 25 of 184
PDF
The Ring programming language version 1.10 book - Part 14 of 212
PDF
The Ring programming language version 1.5.2 book - Part 14 of 181
PDF
The Ring programming language version 1.9 book - Part 32 of 210
PDF
The Ring programming language version 1.5.3 book - Part 188 of 194
PDF
The Ring programming language version 1.6 book - Part 22 of 189
PDF
The Ring programming language version 1.5 book - Part 3 of 31
PDF
The Ring programming language version 1.6 book - Part 184 of 189
PDF
The Ring programming language version 1.5.3 book - Part 20 of 184
PDF
The Ring programming language version 1.3 book - Part 7 of 88
PDF
The Ring programming language version 1.5.4 book - Part 25 of 185
PDF
The Ring programming language version 1.3 book - Part 83 of 88
PDF
The Ring programming language version 1.7 book - Part 91 of 196
PDF
The Ring programming language version 1.5.1 book - Part 32 of 180
PDF
The Ring programming language version 1.6 book - Part 183 of 189
PDF
The Ring programming language version 1.8 book - Part 31 of 202
PDF
The Ring programming language version 1.8 book - Part 7 of 202
PDF
The Ring programming language version 1.3 book - Part 6 of 88
PDF
The Ring programming language version 1.5.3 book - Part 189 of 194
PDF
The Ring programming language version 1.10 book - Part 22 of 212
The Ring programming language version 1.5.3 book - Part 25 of 184
The Ring programming language version 1.10 book - Part 14 of 212
The Ring programming language version 1.5.2 book - Part 14 of 181
The Ring programming language version 1.9 book - Part 32 of 210
The Ring programming language version 1.5.3 book - Part 188 of 194
The Ring programming language version 1.6 book - Part 22 of 189
The Ring programming language version 1.5 book - Part 3 of 31
The Ring programming language version 1.6 book - Part 184 of 189
The Ring programming language version 1.5.3 book - Part 20 of 184
The Ring programming language version 1.3 book - Part 7 of 88
The Ring programming language version 1.5.4 book - Part 25 of 185
The Ring programming language version 1.3 book - Part 83 of 88
The Ring programming language version 1.7 book - Part 91 of 196
The Ring programming language version 1.5.1 book - Part 32 of 180
The Ring programming language version 1.6 book - Part 183 of 189
The Ring programming language version 1.8 book - Part 31 of 202
The Ring programming language version 1.8 book - Part 7 of 202
The Ring programming language version 1.3 book - Part 6 of 88
The Ring programming language version 1.5.3 book - Part 189 of 194
The Ring programming language version 1.10 book - Part 22 of 212
Ad

More from Mahmoud Samir Fayed (20)

PDF
The Ring programming language version 1.10 book - Part 212 of 212
PDF
The Ring programming language version 1.10 book - Part 211 of 212
PDF
The Ring programming language version 1.10 book - Part 210 of 212
PDF
The Ring programming language version 1.10 book - Part 208 of 212
PDF
The Ring programming language version 1.10 book - Part 207 of 212
PDF
The Ring programming language version 1.10 book - Part 205 of 212
PDF
The Ring programming language version 1.10 book - Part 206 of 212
PDF
The Ring programming language version 1.10 book - Part 204 of 212
PDF
The Ring programming language version 1.10 book - Part 203 of 212
PDF
The Ring programming language version 1.10 book - Part 202 of 212
PDF
The Ring programming language version 1.10 book - Part 201 of 212
PDF
The Ring programming language version 1.10 book - Part 200 of 212
PDF
The Ring programming language version 1.10 book - Part 199 of 212
PDF
The Ring programming language version 1.10 book - Part 198 of 212
PDF
The Ring programming language version 1.10 book - Part 197 of 212
PDF
The Ring programming language version 1.10 book - Part 196 of 212
PDF
The Ring programming language version 1.10 book - Part 195 of 212
PDF
The Ring programming language version 1.10 book - Part 194 of 212
PDF
The Ring programming language version 1.10 book - Part 193 of 212
PDF
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 192 of 212

Recently uploaded (20)

PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
KodekX | Application Modernization Development
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Encapsulation theory and applications.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KodekX | Application Modernization Development
Per capita expenditure prediction using model stacking based on satellite ima...
Encapsulation theory and applications.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
NewMind AI Weekly Chronicles - August'25 Week I
sap open course for s4hana steps from ECC to s4
Unlocking AI with Model Context Protocol (MCP)
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Building Integrated photovoltaic BIPV_UPV.pdf
The AUB Centre for AI in Media Proposal.docx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectral efficient network and resource selection model in 5G networks
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?

The Ring programming language version 1.3 book - Part 18 of 88

  • 1. Ring Documentation, Release 1.3 1 2 3 4 5 6 7 8 9 10 28.14 Get Active Source File Name We can get the active source file name (*.ring) using the filename() function Syntax: filename() ---> String contains the active source file name. Example: see "Active Source File Name : " + filename() + nl Output: Active Source File Name : testsfilename.ring Example: if sysargv[2] = filename() see "I'm the main program file!" + nl # we can run tests here! else see "I'm a sub file in a program" + nl ok 28.15 PrevFileName() Function Using the PrevFileName() function we can get the previous active source file name. The previous file would be the file of the caller function, Or the file of the function that we called before calling PrevFileName(). Syntax: prevfilename() ---> String contains the previous source file name. Example: The next function in stdlib.ring uses the PrevFileName() to know if the file of the caller function is the main source file of the program or not. Func IsMainSourceFile if PrevFileName() = sysargv[2] return true ok return false 28.14. Get Active Source File Name 148
  • 2. Ring Documentation, Release 1.3 28.16 CurrentDir() Function Return the path of the current directory Syntax: CurrenDir() ---> String contains the path of the currect directory 28.17 ExeFileName() Function Return the Ring executable file name Syntax: exefilename() ---> String contains the Ring executable file name 28.18 ChDir() Function Change the current directory Syntax: ChDir(cNewPath) 28.19 ExeFolder() Function Return the Ring executable file path Syntax: exefolder() ---> String contains the Ring executable path 28.20 Version() Function Return the Ring version Syntax: version() ---> String contains the Ring version Output: 1.3 28.16. CurrentDir() Function 149
  • 3. CHAPTER TWENTYNINE EVAL() AND DEBUGGING In this chapter we are going to learn about • Error Handling using Try/Catch/Done • Eval() function • Raise() function • Assert() function 29.1 Try/Catch/Done Syntax: Try Statements... Catch Statements... Done The statements in the Try block will be executed, if any error happens then the statements in the catch block will be executed. Inside the catch block we can use the variable cCatchError to get the error message Example: Try see 5/0 Catch see "Catch!" + nl + cCatchError Done Output: Catch! Error (R1) : Cann't divide by zero ! 29.2 Eval() Function We can execute code during the runtime from string using the Eval() function Syntax: 150
  • 4. Ring Documentation, Release 1.3 Eval(cCode) Example: Eval("nOutput = 5+2*5 " ) See "5+2*5 = " + nOutput + nl Eval("for x = 1 to 10 see x + nl next") Eval("func test see 'message from test!' ") test() Output: 5+2*5 = 15 1 2 3 4 5 6 7 8 9 10 message from test! 29.3 Raise() Function We can raise an exception using the Raise() function Syntax: Raise(cErrorMessage) The function will display the error message then end the execution of the program. We can use Try/Catch/Done to avoid exceptions generated by raise() function. Example: nMode = 10 if nMode < 0 or nMode > 5 raise("Error : nMode not in the range 1:4") ok Output: Line 4 Error : nMode not in the range 1:4 In raise in file testsraise.ring Example: try testmode(6) catch see "avoid raise!" done testmode(-1) 29.3. Raise() Function 151
  • 5. Ring Documentation, Release 1.3 func testmode nMode if nMode < 0 or nMode > 5 raise("Error : nMode not in the range 1:4") ok Output: avoid raise! Line 12 Error : nMode not in the range 1:4 In raise In function testmode() in file testsraise2.ring called from line 7 in file testsraise2.ring 29.4 Assert() Function We can use the Assert() function to test conditions before executing the code If the test fail the program will be terminated with an error message contains the assert condition. Syntax: Assert( condition ) Example: x = 10 assert( x = 10) assert( x = 100 ) Output: Line 3 Assertion Failed! In assert in file testsassert.ring 29.4. Assert() Function 152
  • 6. CHAPTER THIRTY DEMO PROGRAMS In this chapter we will see simple demo programs • Language Shell • Main Menu 30.1 Language Shell We can create simple interactive programming environment using the next program while true see nl + "code:> " give cCode try eval(cCode) catch see cCatchError done end Output: code:> see "hello world" hello world code:> for x = 1 to 10 see x + nl next 1 2 3 4 5 6 7 8 9 10 code:> func test see "Hello from test" + nl code:> test() Hello from test code:> bye 153
  • 7. Ring Documentation, Release 1.3 30.2 Main Menu Example: # Demo Program while true see " Main Menu =========== [1] Say Hello [2] Sum two numbers [3] Stars [4] Fact [5] Exit " give nMenu see nl # we can use Switch-ON-Other-OFF instead of IF-BUT-ELSE-OK Switch nMenu On 1 sayhello() On 2 Sum() On 3 Stars() On 4 see "Enter Number : " give x see "Output : " Try see Fact(number(x)) Catch see "Error in parameters!" + nl Done On "5" return Other see "bad option" + nl Off end func sayhello see "Enter your name ? " give fname see "Hello " + fname + nl func sum see "number 1 : " give num1 see "number 2 : " give num2 see "Sum : " see 0 + num1 + num2 func stars for x = 1 to 10 see space(8) for y = 1 to x see "*" next see nl next func fact x if x = 1 return 1 else return x * fact(x-1) ok 30.2. Main Menu 154
  • 8. Ring Documentation, Release 1.3 func space x y = "" for t=1 to x y += " " next return y Output: Main Menu =========== [1] Say Hello [2] Sum two numbers [3] Stars [4] Fact [5] Exit 1 Enter your name ? Mahmoud Fayed Hello Mahmoud Fayed Main Menu =========== [1] Say Hello [2] Sum two numbers [3] Stars [4] Fact [5] Exit 2 number 1 : 3 number 2 : 4 Sum : 7 Main Menu =========== [1] Say Hello [2] Sum two numbers [3] Stars [4] Fact [5] Exit 3 * ** *** **** ***** ****** ******* ******** ********* ********** Main Menu =========== [1] Say Hello [2] Sum two numbers 30.2. Main Menu 155
  • 9. Ring Documentation, Release 1.3 [3] Stars [4] Fact [5] Exit 4 Enter Number : 5 Output : 120 Main Menu =========== [1] Say Hello [2] Sum two numbers [3] Stars [4] Fact [5] Exit 5 30.2. Main Menu 156
  • 10. CHAPTER THIRTYONE ODBC FUNCTIONS This chapter contains the ODBC functions provided by the Ring programming language. • odbc_init() • odbc_drivers() • odbc_datasources() • odbc_close() • odbc_connect() • odbc_disconnect() • odbc_execute() • odbc_colcount() • odbc_fetch() • odbc_getdata() • odbc_tables() • odbc_columns() • odbc_autocommit() • odbc_commit() • odbc_rollback() 31.1 odbc_init() Function We can create ODBC Handle using the odbc_init() function Syntax: odbc_init() ---> ODBC Handle 31.2 odbc_drivers() Function We can get a list of ODBC drivers using the odbc_drivers() function Syntax: 157