forked from springbok/sqlanywhere
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
134 lines (82 loc) · 3.39 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
=SQL Anywhere Ruby Driver
This is a native SQL Anywhere driver for Ruby. This library wraps the
functionality provided by the SQL Anywhere DBCAPI library. This driver
is intended to be a base-level library to be used by interface libraries
such as Ruby-DBI and ActiveRecord.
This driver can be used with SQL Anywhere 10 and later versions.
This driver is licensed under the Apache License, Version 2.
The official code repository is located on GitHub. The repository can be cloned with:
git clone git://github.com/sqlanywhere/sqlanywhere.git
==Build Instructions
===Requirements
* C Compiler
* Ruby
* RubyGem Package manager
===All Platforms
To build the library (.so), use:
rake
To build and install the gem, use:
rake gem
rake install
The other rake tasks are
rake clean -> Cleans up all temp files (ex *.~)
rake clobber -> Cleans up all built files (ex *.gem, *.o, *.so)
===Additional Install Notes for Windows
The popular One-Click Ruby Installer for Windows (RubyInstaller) is built using
Microsoft Visual C++ 6.0. Since problems can arise by combining binaries from
different compilers, we advise you use this compiler.
If you want to use a more recent version of the MS C++ compiler, you will need to make a few changes:
1. Open the file: <RUBY DIR>\lib\ruby\1.8\i386-mswin32\config.h, and comment out the first three lines so they look like:
//#if _MSC_VER != 1200
//#error MSC version unmatch
//#endif
This removes the check for C++ Version 6.0
2. Open <tt>rakefile</tt> and set:
APPLY_MANIFEST = true
This will add the manifest to the compiled binaries.
By default, rake will attempt to use Microsoft <tt>nmake</tt> when building under Windows. To use another make program, set:
USE_NMAKE_ON_WIN = FALSE
==Running Unit Tests
1. Change to the the <tt>test</tt> directory
cd test
2. Create a testing database:
dbinit test
3. Start the testing database:
dbeng11 test.db
4. Create the test schema:
dbisql -c "eng=test;uid=dba;pwd=sql" test.sql
5. Run the unit tests:
ruby sqlanywhere_test.rb
<b>If the tests fail to run, make sure you have set up the SQL Anywhere environment variables correctly.</b> For more information
review the online documentation here[http://dcx.sybase.com/index.php#http%3A%2F%2Fdcx.sybase.com%2F1100en%2Fdbadmin_en11%2Fda-envvar-sect1-3672410.html].
==Sample
This script makes a connection, prints <tt>Successful Ruby Connection</tt> to the SQL
Anywhere console, then disconnects.
# load the SQLAnywhere gem
begin
require 'rubygems'
gem 'sqlanywhere'
unless defined? SQLAnywhere
require 'sqlanywhere'
end
end
# create an interface
api = SQLAnywhere::SQLAnywhereInterface.new()
# initialize the interface (loads the DLL/SO)
SQLAnywhere::API.sqlany_initialize_interface( api )
# initialize our api object
api.sqlany_init()
# create a connection
conn = api.sqlany_new_connection()
# establish a connection
api.sqlany_connect(conn, "uid=dba;pwd=sql")
# execute a query without a result set
api.sqlany_execute_immediate(conn, "MESSAGE 'Successful Ruby Connection'")
# disconnect from the database
api.sqlany_disconnect(conn)
# free the connection resources
api.sqlany_free_connection(conn)
# free resources the api object uses
api.sqlany_fini()
# close the interface
SQLAnywhere::API.sqlany_finalize_interface( api )