ruby-odbc 0.99994 → 0.99995
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/ChangeLog +6 -0
- data/README +4 -2
- data/doc/odbc.html +7 -1
- data/ext/odbc.c +47 -12
- data/ext/utf8/extconf.rb +6 -6
- data/ruby-odbc.gemspec +1 -1
- metadata +37 -55
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c7479d33fa9c59ff9ddceda117a54eff5b755a40
|
4
|
+
data.tar.gz: ffe877023d88272ddb59da531bf1fda03cdf6c35
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 95b9dd91fe942297cd879cfc83c82af7fe9a2aeaabcff01a65a9870b89886e8a7d729f8a2119241d46363282081bfeb9d8c0a21daf8836b619807deea947d0e8
|
7
|
+
data.tar.gz: 328aa7cff9af2f30af215560abc65d947879468299e31e449d7c919cb146a84effde0f88e9816fd7633230c70ecded79417db8dae00d1cb882f76b114f2d6040
|
data/ChangeLog
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
ODBC binding for Ruby
|
2
2
|
---------------------
|
3
3
|
|
4
|
+
Wed Mar 13 2013 version 0.99995 released
|
5
|
+
|
6
|
+
* added ODBC::Database.use_sql_column_name= flag to switch
|
7
|
+
usage of SQLColAttributes(SQL_COLUMN_LABEL) to
|
8
|
+
SQLColAttributes(SQL_COLUMN_NAME) on per connection basis
|
9
|
+
|
4
10
|
Sat Jan 15 2011 version 0.99994 released
|
5
11
|
|
6
12
|
* fixed column key caching, thanks Sean Noonan for bug report
|
data/README
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# $Id: README,v 1.
|
1
|
+
# $Id: README,v 1.42 2013/03/13 19:24:03 chw Exp chw $
|
2
2
|
|
3
|
-
ruby-odbc-0.
|
3
|
+
ruby-odbc-0.99995
|
4
4
|
|
5
5
|
This is an ODBC binding for Ruby. So far it has been tested with
|
6
6
|
|
@@ -18,6 +18,8 @@ This is an ODBC binding for Ruby. So far it has been tested with
|
|
18
18
|
|
19
19
|
- Ruby 1.8.*, SQLite/ODBC >= 0.67, libiodbc 3.52.4 on Fedora Core 3 x86
|
20
20
|
|
21
|
+
- Ruby 2.0.0, SQLite/ODBC >= 0.93, unixODBC 2.2.14 on Ubuntu 12.04 x86
|
22
|
+
|
21
23
|
Michael Neumann <neumann@s-direktnet.de> and
|
22
24
|
Will Merrell <wmerrell@catalystcorp.com> reported successful compilation
|
23
25
|
with Cygwin on Win32.
|
data/doc/odbc.html
CHANGED
@@ -27,7 +27,7 @@
|
|
27
27
|
<body>
|
28
28
|
<h1><a name="reference">Ruby ODBC Reference</a></h1>
|
29
29
|
<div class = "lastmodifed">
|
30
|
-
Last update:
|
30
|
+
Last update: Wed, 13 March 2013
|
31
31
|
</div>
|
32
32
|
<hr>
|
33
33
|
<div>
|
@@ -706,6 +706,12 @@ aproc.statement.drop</pre>
|
|
706
706
|
SQL_TIMESTAMP data types to Ruby objects. When true,
|
707
707
|
Ruby Date and Time objects are represented in UTC, when
|
708
708
|
false (default) in the local timezone.
|
709
|
+
<dt><a name="use_sql_column_name">
|
710
|
+
<code>use_sql_column_name[=<var>bool</var>]</code></a>
|
711
|
+
<dd>Sets or queries the flag controlling how column names are
|
712
|
+
read from the data source. When false (default), the ODBC
|
713
|
+
API <code>SQLColAttributes(SQL_COLUMN_LABEL)</code> is used,
|
714
|
+
otherwise <code>SQLColAttributes(SQL_COLUMN_NAME)</code> is used.
|
709
715
|
</dl>
|
710
716
|
<h3>singleton methods:</h3>
|
711
717
|
<dl>
|
data/ext/odbc.c
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
2
|
* ODBC-Ruby binding
|
3
|
-
* Copyright (c) 2001-
|
3
|
+
* Copyright (c) 2001-2013 Christian Werner <chw@ch-werner.de>
|
4
4
|
* Portions copyright (c) 2004 Ryszard Niewisiewicz <micz@fibernet.pl>
|
5
5
|
* Portions copyright (c) 2006 Carl Blakeley <cblakeley@openlinksw.co.uk>
|
6
6
|
*
|
@@ -8,7 +8,7 @@
|
|
8
8
|
* and redistribution of this file and for a
|
9
9
|
* DISCLAIMER OF ALL WARRANTIES.
|
10
10
|
*
|
11
|
-
* $Id: odbc.c,v 1.
|
11
|
+
* $Id: odbc.c,v 1.75 2013/03/13 19:31:13 chw Exp chw $
|
12
12
|
*/
|
13
13
|
|
14
14
|
#undef ODBCVER
|
@@ -168,6 +168,7 @@ typedef struct dbc {
|
|
168
168
|
VALUE rbtime;
|
169
169
|
VALUE gmtime;
|
170
170
|
int upc;
|
171
|
+
VALUE use_sql_column_name;
|
171
172
|
} DBC;
|
172
173
|
|
173
174
|
typedef struct {
|
@@ -1954,6 +1955,7 @@ dbc_new(int argc, VALUE *argv, VALUE self)
|
|
1954
1955
|
list_init(&p->stmts, offsetof(STMT, link));
|
1955
1956
|
p->hdbc = SQL_NULL_HDBC;
|
1956
1957
|
p->upc = 0;
|
1958
|
+
p->use_sql_column_name = Qfalse;
|
1957
1959
|
#endif
|
1958
1960
|
if (env != Qnil) {
|
1959
1961
|
ENV *e;
|
@@ -2194,6 +2196,20 @@ dbc_timeutc(int argc, VALUE *argv, VALUE self)
|
|
2194
2196
|
}
|
2195
2197
|
return p->gmtime;
|
2196
2198
|
}
|
2199
|
+
|
2200
|
+
static VALUE
|
2201
|
+
dbc_use_scn(int argc, VALUE *argv, VALUE self)
|
2202
|
+
{
|
2203
|
+
DBC *p = get_dbc(self);
|
2204
|
+
VALUE val;
|
2205
|
+
|
2206
|
+
if (argc > 0) {
|
2207
|
+
rb_scan_args(argc, argv, "1", &val);
|
2208
|
+
p->use_sql_column_name =
|
2209
|
+
(val != Qnil && val != Qfalse) ? Qtrue : Qfalse;
|
2210
|
+
}
|
2211
|
+
return p->use_sql_column_name;
|
2212
|
+
}
|
2197
2213
|
|
2198
2214
|
/*
|
2199
2215
|
*----------------------------------------------------------------------
|
@@ -3183,7 +3199,7 @@ make_coltypes(SQLHSTMT hstmt, int ncols, char **msgp)
|
|
3183
3199
|
{
|
3184
3200
|
int i;
|
3185
3201
|
COLTYPE *ret = NULL;
|
3186
|
-
SQLLEN type, size;
|
3202
|
+
SQLLEN type, size = 0;
|
3187
3203
|
|
3188
3204
|
for (i = 0; i < ncols; i++) {
|
3189
3205
|
SQLUSMALLINT ic = i + 1;
|
@@ -3565,7 +3581,7 @@ upcase_if(char *string, int upc)
|
|
3565
3581
|
*/
|
3566
3582
|
|
3567
3583
|
static VALUE
|
3568
|
-
make_column(SQLHSTMT hstmt, int i, int upc)
|
3584
|
+
make_column(SQLHSTMT hstmt, int i, int upc, int use_scn)
|
3569
3585
|
{
|
3570
3586
|
VALUE obj, v;
|
3571
3587
|
SQLUSMALLINT ic = i + 1;
|
@@ -3580,10 +3596,12 @@ make_column(SQLHSTMT hstmt, int i, int upc)
|
|
3580
3596
|
|
3581
3597
|
name[0] = 0;
|
3582
3598
|
if (!succeeded(SQL_NULL_HENV, SQL_NULL_HDBC, hstmt,
|
3583
|
-
SQLColAttributes(hstmt, ic,
|
3599
|
+
SQLColAttributes(hstmt, ic, use_scn ? SQL_COLUMN_NAME :
|
3600
|
+
SQL_COLUMN_LABEL, name,
|
3584
3601
|
(SQLSMALLINT) sizeof (name),
|
3585
3602
|
&name_len, NULL),
|
3586
|
-
&msg, "SQLColAttributes(
|
3603
|
+
&msg, use_scn ? "SQLColAttributes(SQL_COLUMN_NAME)" :
|
3604
|
+
"SQLColAttributes(SQL_COLUMN_LABEL)")) {
|
3587
3605
|
rb_raise(Cerror, "%s", msg);
|
3588
3606
|
}
|
3589
3607
|
obj = rb_obj_alloc(Ccolumn);
|
@@ -5823,27 +5841,34 @@ stmt_column(int argc, VALUE *argv, VALUE self)
|
|
5823
5841
|
{
|
5824
5842
|
STMT *q;
|
5825
5843
|
VALUE col;
|
5844
|
+
int use_scn = 0;
|
5826
5845
|
|
5827
5846
|
rb_scan_args(argc, argv, "1", &col);
|
5828
5847
|
Check_Type(col, T_FIXNUM);
|
5829
5848
|
Data_Get_Struct(self, STMT, q);
|
5830
5849
|
check_ncols(q);
|
5831
|
-
|
5850
|
+
if (q->dbcp != NULL && q->dbcp->use_sql_column_name == Qtrue) {
|
5851
|
+
use_scn = 1;
|
5852
|
+
}
|
5853
|
+
return make_column(q->hstmt, FIX2INT(col), q->upc, use_scn);
|
5832
5854
|
}
|
5833
5855
|
|
5834
5856
|
static VALUE
|
5835
5857
|
stmt_columns(int argc, VALUE *argv, VALUE self)
|
5836
5858
|
{
|
5837
5859
|
STMT *q;
|
5838
|
-
int i;
|
5860
|
+
int i, use_scn = 0;
|
5839
5861
|
VALUE res, as_ary = Qfalse;
|
5840
5862
|
|
5841
5863
|
rb_scan_args(argc, argv, "01", &as_ary);
|
5842
5864
|
Data_Get_Struct(self, STMT, q);
|
5843
5865
|
check_ncols(q);
|
5866
|
+
if (q->dbcp != NULL && q->dbcp->use_sql_column_name == Qtrue) {
|
5867
|
+
use_scn = 1;
|
5868
|
+
}
|
5844
5869
|
if (rb_block_given_p()) {
|
5845
5870
|
for (i = 0; i < q->ncols; i++) {
|
5846
|
-
rb_yield(make_column(q->hstmt, i, q->upc));
|
5871
|
+
rb_yield(make_column(q->hstmt, i, q->upc, use_scn));
|
5847
5872
|
}
|
5848
5873
|
return self;
|
5849
5874
|
}
|
@@ -5855,7 +5880,7 @@ stmt_columns(int argc, VALUE *argv, VALUE self)
|
|
5855
5880
|
for (i = 0; i < q->ncols; i++) {
|
5856
5881
|
VALUE obj;
|
5857
5882
|
|
5858
|
-
obj = make_column(q->hstmt, i, q->upc);
|
5883
|
+
obj = make_column(q->hstmt, i, q->upc, use_scn);
|
5859
5884
|
if (RTEST(as_ary)) {
|
5860
5885
|
rb_ary_store(res, i, obj);
|
5861
5886
|
} else {
|
@@ -5918,7 +5943,7 @@ stmt_params(VALUE self)
|
|
5918
5943
|
static VALUE
|
5919
5944
|
do_fetch(STMT *q, int mode)
|
5920
5945
|
{
|
5921
|
-
int i, offc;
|
5946
|
+
int i, use_scn = 0, offc;
|
5922
5947
|
char **bufs, *msg;
|
5923
5948
|
VALUE res;
|
5924
5949
|
|
@@ -5958,6 +5983,9 @@ do_fetch(STMT *q, int mode)
|
|
5958
5983
|
}
|
5959
5984
|
}
|
5960
5985
|
}
|
5986
|
+
if (q->dbcp != NULL && q->dbcp->use_sql_column_name == Qtrue) {
|
5987
|
+
use_scn = 1;
|
5988
|
+
}
|
5961
5989
|
switch (mode & DOFETCH_MODES) {
|
5962
5990
|
case DOFETCH_HASH:
|
5963
5991
|
case DOFETCH_HASH2:
|
@@ -6008,10 +6036,13 @@ do_fetch(STMT *q, int mode)
|
|
6008
6036
|
if (!succeeded(SQL_NULL_HENV, SQL_NULL_HDBC, q->hstmt,
|
6009
6037
|
SQLColAttributes(q->hstmt,
|
6010
6038
|
(SQLUSMALLINT) (i + 1),
|
6039
|
+
use_scn ? SQL_COLUMN_NAME :
|
6011
6040
|
SQL_COLUMN_LABEL, name,
|
6012
6041
|
sizeof (name),
|
6013
6042
|
&name_len, NULL),
|
6014
|
-
&msg,
|
6043
|
+
&msg, use_scn ?
|
6044
|
+
"SQLColAttributes(SQL_COLUMN_NAME)" :
|
6045
|
+
"SQLColAttributes(SQL_COLUMN_LABEL)")) {
|
6015
6046
|
rb_raise(Cerror, "%s", msg);
|
6016
6047
|
}
|
6017
6048
|
if (name_len >= (SQLSMALLINT) sizeof (name)) {
|
@@ -6064,8 +6095,10 @@ do_fetch(STMT *q, int mode)
|
|
6064
6095
|
name[0] = 0;
|
6065
6096
|
callsql(SQL_NULL_HENV, SQL_NULL_HDBC, q->hstmt,
|
6066
6097
|
SQLColAttributes(q->hstmt, (SQLUSMALLINT) (i + 1),
|
6098
|
+
use_scn ? SQL_COLUMN_NAME :
|
6067
6099
|
SQL_COLUMN_LABEL, name,
|
6068
6100
|
sizeof (name), &name_len, NULL),
|
6101
|
+
use_scn ? "SQLColAttributes(SQL_COLUMN_NAME)" :
|
6069
6102
|
"SQLColAttributes(SQL_COLUMN_LABEL)");
|
6070
6103
|
if (name_len >= (SQLSMALLINT) sizeof (name)) {
|
6071
6104
|
name_len = sizeof (name) - 1;
|
@@ -8247,6 +8280,8 @@ Init_odbc()
|
|
8247
8280
|
rb_define_method(Cdbc, "use_time=", dbc_timefmt, -1);
|
8248
8281
|
rb_define_method(Cdbc, "use_utc", dbc_timeutc, -1);
|
8249
8282
|
rb_define_method(Cdbc, "use_utc=", dbc_timeutc, -1);
|
8283
|
+
rb_define_method(Cdbc, "use_sql_column_name", dbc_use_scn, -1);
|
8284
|
+
rb_define_method(Cdbc, "use_sql_column_name=", dbc_use_scn, -1);
|
8250
8285
|
|
8251
8286
|
/* connection options */
|
8252
8287
|
rb_define_method(Cdbc, "get_option", dbc_getsetoption, -1);
|
data/ext/utf8/extconf.rb
CHANGED
@@ -112,16 +112,16 @@ if PLATFORM =~ /mswin32/ then
|
|
112
112
|
have_func("SQLReadFileDSNW", "odbcinst.h")
|
113
113
|
have_func("SQLInstallerError", "odbcinst.h")
|
114
114
|
have_func("SQLInstallerErrorW", "odbcinst.h")
|
115
|
-
# mingw untested !!!
|
116
115
|
elsif PLATFORM =~ /(mingw|cygwin)/ then
|
117
116
|
have_library("odbc32", "")
|
118
117
|
have_library("odbccp32", "")
|
119
118
|
have_library("user32", "")
|
120
|
-
|
121
|
-
have_func("
|
122
|
-
have_func("
|
123
|
-
have_func("
|
124
|
-
have_func("
|
119
|
+
header = ["windows.h", "odbcinst.h"]
|
120
|
+
have_func("SQLConfigDataSourceW", header)
|
121
|
+
have_func("SQLWriteFileDSNW", header)
|
122
|
+
have_func("SQLReadFileDSNW", header)
|
123
|
+
have_func("SQLInstallerError", header)
|
124
|
+
have_func("SQLInstallerErrorW", header)
|
125
125
|
elsif (testdlopen && PLATFORM !~ /(macos|darwin)/ && CONFIG["CC"] =~ /gcc/ && have_func("dlopen", "dlfcn.h") && have_library("dl", "dlopen")) then
|
126
126
|
$LDFLAGS+=" -Wl,-init -Wl,ruby_odbc_init -Wl,-fini -Wl,ruby_odbc_fini"
|
127
127
|
$CPPFLAGS+=" -DHAVE_SQLCONFIGDATASOURCE"
|
data/ruby-odbc.gemspec
CHANGED
metadata
CHANGED
@@ -1,91 +1,73 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-odbc
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
segments:
|
6
|
-
- 0
|
7
|
-
- 99994
|
8
|
-
version: "0.99994"
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.99995'
|
9
5
|
platform: ruby
|
10
|
-
authors:
|
6
|
+
authors:
|
11
7
|
- Christian Werner
|
12
8
|
autorequire:
|
13
9
|
bindir: bin
|
14
10
|
cert_chain: []
|
15
|
-
|
16
|
-
date: 2011-01-15 00:00:00 +01:00
|
17
|
-
default_executable:
|
11
|
+
date: 2013-03-13 00:00:00.000000000 Z
|
18
12
|
dependencies: []
|
19
|
-
|
20
13
|
description:
|
21
14
|
email: chw @nospam@ ch-werner.de
|
22
15
|
executables: []
|
23
|
-
|
24
|
-
extensions:
|
16
|
+
extensions:
|
25
17
|
- ext/extconf.rb
|
26
18
|
- ext/utf8/extconf.rb
|
27
|
-
extra_rdoc_files:
|
19
|
+
extra_rdoc_files:
|
28
20
|
- README
|
29
21
|
- COPYING
|
30
22
|
- ChangeLog
|
31
23
|
- GPL
|
32
24
|
- doc/odbc.html
|
33
|
-
files:
|
34
|
-
-
|
35
|
-
- doc/odbc.html
|
36
|
-
- GPL
|
37
|
-
- ruby-odbc.gemspec
|
38
|
-
- ChangeLog
|
39
|
-
- MANIFEST
|
40
|
-
- README
|
25
|
+
files:
|
26
|
+
- COPYING
|
41
27
|
- ext/init.c
|
28
|
+
- ext/extconf.rb
|
29
|
+
- ext/odbc.c
|
42
30
|
- ext/utf8/init.c
|
43
31
|
- ext/utf8/extconf.rb
|
44
32
|
- ext/utf8/odbc.c
|
45
|
-
-
|
46
|
-
-
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
33
|
+
- ruby-odbc.gemspec
|
34
|
+
- README
|
35
|
+
- MANIFEST
|
36
|
+
- doc/odbc.html
|
37
|
+
- ChangeLog
|
50
38
|
- test/20insert.rb
|
51
|
-
- test/30select.rb
|
52
39
|
- test/10create_table.rb
|
53
|
-
- test/
|
40
|
+
- test/test.rb
|
54
41
|
- test/50drop_table.rb
|
42
|
+
- test/30select.rb
|
43
|
+
- test/utf8/test.rb
|
44
|
+
- test/70close.rb
|
55
45
|
- test/40update.rb
|
56
|
-
-
|
57
|
-
|
46
|
+
- test/00connect.rb
|
47
|
+
- lib/cqgen.rb
|
48
|
+
- GPL
|
58
49
|
homepage: http://www.ch-werner.de/rubyodbc
|
59
50
|
licenses: []
|
60
|
-
|
51
|
+
metadata: {}
|
61
52
|
post_install_message:
|
62
53
|
rdoc_options: []
|
63
|
-
|
64
|
-
require_paths:
|
54
|
+
require_paths:
|
65
55
|
- lib
|
66
56
|
- lib
|
67
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
requirements:
|
78
|
-
- - ">="
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
segments:
|
81
|
-
- 0
|
82
|
-
version: "0"
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
83
67
|
requirements: []
|
84
|
-
|
85
68
|
rubyforge_project:
|
86
|
-
rubygems_version:
|
69
|
+
rubygems_version: 2.0.0
|
87
70
|
signing_key:
|
88
|
-
specification_version:
|
71
|
+
specification_version: 4
|
89
72
|
summary: ODBC binding for Ruby
|
90
73
|
test_files: []
|
91
|
-
|