advantage 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,64 @@
1
+ // *****************************************************
2
+ // Copyright (c) 2008-2010 iAnywhere Solutions, Inc.
3
+ // Portions copyright (c) 1988-2010 Sybase, Inc.
4
+ // All rights reserved. All unpublished rights reserved.
5
+ // *****************************************************
6
+ IF EXISTS( SELECT * FROM SYSTEM.TABLES WHERE "name" = 'test') THEN
7
+ DROP TABLE "test";
8
+ END IF;
9
+
10
+ IF EXISTS( SELECT * FROM SYSTEM.TABLES WHERE "name" = 'types') THEN
11
+ DROP TABLE "types";
12
+ END IF;
13
+
14
+ CREATE TABLE "test" (
15
+ "id" AUTOINC CONSTRAINT NOT NULL,
16
+ PRIMARY KEY("id")
17
+ );
18
+
19
+ CREATE TABLE "types" (
20
+ "id" INTEGER PRIMARY KEY,
21
+ "_blob_" blob,
22
+ "_numeric_" NUMERIC(5,2),
23
+ "_char_" CHAR(255),
24
+ "_memo_" MEMO,
25
+ "_int_" INTEGER,
26
+ "_short_" SHORT,
27
+ "_logical_" LOGICAL,
28
+ "_date_" DATE,
29
+ "_timestamp_" TIMESTAMP,
30
+ "_double_" DOUBLE,
31
+ "_money_" MONEY
32
+ );
33
+
34
+ INSERT INTO types VALUES
35
+ ( 0,
36
+ CHAR2HEX ( '78' ),
37
+ 1.1,
38
+ 'Bounded String Test',
39
+ 'Unbounded String Test',
40
+ 1,
41
+ 1,
42
+ TRUE,
43
+ '1999-01-02',
44
+ '1999-01-02 21:20:53',
45
+ 3.402823e+38,
46
+ 1
47
+ );
48
+
49
+ INSERT INTO types VALUES
50
+ ( 1,
51
+ CHAR2HEX ( 'FF'),
52
+ -1.1,
53
+ '',
54
+ '',
55
+ 0,
56
+ 0,
57
+ FALSE,
58
+ NULL,
59
+ NULL,
60
+ -3.402823e+38,
61
+ -7.77
62
+ );
63
+
64
+
@@ -0,0 +1,63 @@
1
+ begin
2
+ require "rubygems"
3
+ require "advantage"
4
+ unless defined? Advantage
5
+ # require 'advantage'
6
+ if RUBY_VERSION >= "1.9"
7
+ require_relative "../lib/advantage/advantage.so"
8
+ else
9
+ require File.join(File.dirname(__FILE__), "../lib/advantage/advantage.so")
10
+ end
11
+ end
12
+ end
13
+
14
+ # create an interface
15
+ api = Advantage::AdvantageInterface.new()
16
+ #
17
+ # initialize the interface (loads the DLL/SO)
18
+ Advantage::API.ads_initialize_interface(api)
19
+ #
20
+ # initialize our api object
21
+ api.ads_init()
22
+
23
+ # create a connection
24
+ conn = api.ads_new_connection()
25
+
26
+ # establish a connection
27
+ conn_str = "data source=//172.27.144.1:6262/c\$/ads/db/mydb.add;user id=adssys;DateFormat=YYYY-MM-DD;CommType=TCP_IP;Compression=INTERNET"
28
+ # conn_str = "data source=//10.0.0.4:6262/aislims/db/;user id=adssys;DateFormat=YYYY-MM-DD;CommType=TCP_IP;"
29
+ val = api.ads_connect(conn, conn_str)
30
+ puts "VAL: #{val.inspect}"
31
+
32
+ # execute a query without a result set
33
+ # puts api.ads_execute_immediate(conn, "select 'Successful Ruby Connection' from system.iota;").inspect
34
+ # sql = "select 'Successful Ruby Connection' from system.iota;"
35
+ # sql = "select * from discount;"
36
+ sql = "EXECUTE PROCEDURE sp_GetTables( NULL, NULL, NULL, 'TABLE' );"
37
+ rs = api.ads_execute_direct(conn, sql)
38
+ puts "RS: #{rs.inspect}"
39
+ loop do
40
+ fetch = api.ads_fetch_next(rs)
41
+ break if fetch == 0
42
+ puts "FETCH: #{fetch.inspect}"
43
+ res, ret_id = api.ads_get_column(rs, 0)
44
+ puts "RES: #{res.inspect}, id: #{ret_id.inspect}"
45
+ end
46
+
47
+ puts "RS: #{rs.inspect}"
48
+ puts "fetch: #{fetch.inspect}"
49
+ puts "RES: #{res.inspect}, id: #{id.inspect}"
50
+
51
+ # disconnect from the database
52
+ puts api.ads_disconnect(conn).inspect
53
+
54
+ # free the connection resources
55
+ api.ads_free_connection(conn)
56
+
57
+ # free resources the api object uses
58
+ api.ads_fini()
59
+
60
+ # close the interface
61
+ Advantage::API.ads_finalize_interface(api)
62
+
63
+ puts "finished"
@@ -0,0 +1,67 @@
1
+ begin
2
+ require "rubygems"
3
+ require "advantage"
4
+ unless defined? Advantage
5
+ # require 'advantage'
6
+ if RUBY_VERSION >= "1.9"
7
+ require_relative "../lib/advantage/advantage.so"
8
+ else
9
+ require File.join(File.dirname(__FILE__), "../lib/advantage/advantage.so")
10
+ end
11
+ end
12
+ end
13
+
14
+ # create an interface
15
+ api = Advantage::AdvantageInterface.new()
16
+ #
17
+ # initialize the interface (loads the DLL/SO)
18
+ Advantage::API.ads_initialize_interface(api)
19
+ #
20
+ # initialize our api object
21
+ api.ads_init()
22
+
23
+ # create a connection
24
+ conn = api.ads_new_connection()
25
+
26
+ # establish a connection
27
+ conn_str = "data source=//172.27.144.1:6262/c\$/ads/db/mydb.add;user id=adssys;DateFormat=YYYY-MM-DD;CommType=TCP_IP;Compression=INTERNET"
28
+ # conn_str = "data source=//10.0.0.4:6262/aislims/db/;user id=adssys;DateFormat=YYYY-MM-DD;CommType=TCP_IP;"
29
+ val = api.ads_connect(conn, conn_str)
30
+ puts "VAL: #{val.inspect}"
31
+
32
+ # execute a query without a result set
33
+ # puts api.ads_execute_immediate(conn, "select 'Successful Ruby Connection' from system.iota;").inspect
34
+ #sql = "select 'Successful Ruby Connection' from system.iota;"
35
+ sql = "select * from discount;"
36
+ rs = api.ads_execute_direct(conn, sql)
37
+ puts "RS: #{rs.inspect}"
38
+
39
+ record = []
40
+ if (api.ads_num_cols(rs) > 0)
41
+ while api.ads_fetch_next(rs) == 1
42
+ max_cols = api.ads_num_cols(rs)
43
+ result = Hash.new()
44
+ max_cols.times do |cols|
45
+ result[api.ads_get_column_info(rs, cols)[2]] = api.ads_get_column(rs, cols)[1]
46
+ end
47
+ record << result
48
+ end
49
+ @affected_rows = 0
50
+ else
51
+ @affected_rows = api.ads_affected_rows(rs)
52
+ end
53
+ puts "RECORD: #{record.inspect}"
54
+
55
+ # disconnect from the database
56
+ puts api.ads_disconnect(conn).inspect
57
+
58
+ # free the connection resources
59
+ api.ads_free_connection(conn)
60
+
61
+ # free resources the api object uses
62
+ api.ads_fini()
63
+
64
+ # close the interface
65
+ Advantage::API.ads_finalize_interface(api)
66
+
67
+ puts "finished"
@@ -0,0 +1,84 @@
1
+ begin
2
+ require "rubygems"
3
+ require "advantage"
4
+ unless defined? Advantage
5
+ # require 'advantage'
6
+ if RUBY_VERSION >= "1.9"
7
+ require_relative "../lib/advantage/advantage.so"
8
+ else
9
+ require File.join(File.dirname(__FILE__), "../lib/advantage/advantage.so")
10
+ end
11
+ end
12
+ end
13
+
14
+ # create an interface
15
+ api = Advantage::AdvantageInterface.new()
16
+ #
17
+ # initialize the interface (loads the DLL/SO)
18
+ Advantage::API.ads_initialize_interface(api)
19
+ #
20
+ # initialize our api object
21
+ api.ads_init()
22
+
23
+ # create a connection
24
+ conn = api.ads_new_connection()
25
+
26
+ # establish a connection
27
+ conn_str = "data source=//172.27.144.1:6262/c\$/ads/db/;user id=adssys;DateFormat=YYYY-MM-DD;CommType=TCP_IP;Compression=INTERNET"
28
+ # conn_str = "data source=//10.0.0.4:6262/aislims/db/;user id=adssys;DateFormat=YYYY-MM-DD;CommType=TCP_IP;"
29
+ val = api.ads_connect(conn, conn_str)
30
+ puts "VAL: #{val.inspect}"
31
+
32
+ # execute a query without a result set
33
+ # puts api.ads_execute_immediate(conn, "select 'Successful Ruby Connection' from system.iota;").inspect
34
+ #sql = "select 'Successful Ruby Connection' from system.iota;"
35
+ #sql = "EXECUTE PROCEDURE sp_GetTables( NULL, NULL, NULL, 'TABLE' );"
36
+ sql = 'SELECT COUNT(*) FROM "DISCOUNT";'
37
+ rs = api.ads_execute_direct(conn, sql)
38
+ puts "RS: #{rs.inspect}"
39
+
40
+ row_record = []
41
+ cols = []
42
+ acols = api.ads_num_cols(rs)
43
+ puts "ACOLS: #{acols.inspect}"
44
+
45
+ #if( api.ads_num_cols(rs) > 0)
46
+ puts "HOORAY!"
47
+ loop do
48
+ fetch = api.ads_fetch_next(rs)
49
+ puts "FETCH: #{fetch.inspect}"
50
+ break if fetch == 0
51
+ max_cols = api.ads_num_cols(rs)
52
+ puts "MAX_COLS: #{max_cols.inspect}"
53
+ max_cols = api.ads_num_cols(rs)
54
+ row = []
55
+ max_cols.times do |cols|
56
+ # result[api.ads_get_column_info(rs, cols)[2]] = api.ads_get_column(rs, cols)[1]
57
+ cinfo = api.ads_get_column_info(rs, cols)
58
+ cols << cinfo[2].to_s
59
+ cvalue = api.ads_get_column(rs, cols)[1]
60
+ cvalue = "0.0" if cinfo[3] == 13 and cvalue.rstrip == ""
61
+ cvalue.rstrip! if cinfo[3] == 2 and cvalue
62
+ row << cvalue
63
+ end
64
+ row_record << row
65
+ #end
66
+ #else
67
+ #puts "BOO!"
68
+ end
69
+ api.ads_free_stmt(rs)
70
+ puts "RECORD: #{record.inspect}"
71
+
72
+ # disconnect from the database
73
+ puts api.ads_disconnect(conn).inspect
74
+
75
+ # free the connection resources
76
+ api.ads_free_connection(conn)
77
+
78
+ # free resources the api object uses
79
+ api.ads_fini()
80
+
81
+ # close the interface
82
+ Advantage::API.ads_finalize_interface(api)
83
+
84
+ puts "finished"
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: advantage
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Edgar Sherman
8
+ - Jon Adams
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2020-11-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.17'
21
+ type: :development
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.17'
28
+ - !ruby/object:Gem::Dependency
29
+ name: rake
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '10.0'
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '10.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: rspec
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '3.0'
49
+ type: :development
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '3.0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake-compiler
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.1'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.1'
70
+ description: Advantage Database Driver for Ruby
71
+ email:
72
+ - advantage@sybase.com
73
+ - t12nslookup@googlemail.com
74
+ executables: []
75
+ extensions:
76
+ - ext/advantage/extconf.rb
77
+ extra_rdoc_files: []
78
+ files:
79
+ - LICENSE
80
+ - README
81
+ - Rakefile
82
+ - advantage.gemspec
83
+ - ext/advantage/ace.h
84
+ - ext/advantage/adscapidll.c
85
+ - ext/advantage/adscapidll.h
86
+ - ext/advantage/advantage.c
87
+ - ext/advantage/dbcapi.cpp
88
+ - ext/advantage/dbcapi.h
89
+ - ext/advantage/extconf.rb
90
+ - test/advantage/advantage_test.rb
91
+ - test/advantage/test.sql
92
+ - test/mytest.rb
93
+ - test/mytest2.rb
94
+ - test/mytest3.rb
95
+ homepage: http://devzone.advantagedatabase.com
96
+ licenses:
97
+ - Apache-2.0
98
+ metadata:
99
+ allowed_push_host: https://rubygems.org
100
+ homepage_uri: http://devzone.advantagedatabase.com
101
+ source_code_uri: https://github.com/t12nslookup/advantage/
102
+ changelog_uri: https://github.com/t12nslookup/advantage/blob/master/CHANGELOG.md
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ requirements: []
118
+ rubygems_version: 3.1.2
119
+ signing_key:
120
+ specification_version: 4
121
+ summary: Advantage Database library for Ruby
122
+ test_files: []