fireruby 0.1.0-mswin32 → 0.2.0-mswin32

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.
Files changed (127) hide show
  1. data/doc/README +297 -31
  2. data/examples/example01.rb +60 -0
  3. data/lib/doc.tar.gz +0 -0
  4. data/lib/fireruby.bundle +0 -0
  5. data/lib/fireruby.so +0 -0
  6. data/lib/mkdoc +1 -1
  7. data/lib/src.rb +158 -15
  8. data/test/ConnectionTest.rb +11 -10
  9. data/test/DDLTest.rb +7 -6
  10. data/test/DatabaseTest.rb +13 -14
  11. data/test/GeneratorTest.rb +4 -3
  12. data/test/ResultSetTest.rb +6 -5
  13. data/test/RowTest.rb +49 -0
  14. data/test/SQLTest.rb +43 -26
  15. data/test/StatementTest.rb +6 -5
  16. data/test/TransactionTest.rb +7 -6
  17. data/test/UnitTest.rb +1 -0
  18. metadata +11 -135
  19. data/doc/CVS/Entries +0 -10
  20. data/doc/CVS/Repository +0 -1
  21. data/doc/CVS/Root +0 -1
  22. data/doc/classes/CVS/Entries +0 -2
  23. data/doc/classes/CVS/Entries.Log +0 -1
  24. data/doc/classes/CVS/Repository +0 -1
  25. data/doc/classes/CVS/Root +0 -1
  26. data/doc/classes/FireRuby/CVS/Entries +0 -8
  27. data/doc/classes/FireRuby/CVS/Entries.Log +0 -7
  28. data/doc/classes/FireRuby/CVS/Repository +0 -1
  29. data/doc/classes/FireRuby/CVS/Root +0 -1
  30. data/doc/classes/FireRuby/Connection.html +0 -364
  31. data/doc/classes/FireRuby/Connection.src/CVS/Entries +0 -10
  32. data/doc/classes/FireRuby/Connection.src/CVS/Repository +0 -1
  33. data/doc/classes/FireRuby/Connection.src/CVS/Root +0 -1
  34. data/doc/classes/FireRuby/Connection.src/M000046.html +0 -17
  35. data/doc/classes/FireRuby/Connection.src/M000047.html +0 -17
  36. data/doc/classes/FireRuby/Connection.src/M000048.html +0 -17
  37. data/doc/classes/FireRuby/Connection.src/M000049.html +0 -17
  38. data/doc/classes/FireRuby/Connection.src/M000050.html +0 -17
  39. data/doc/classes/FireRuby/Connection.src/M000051.html +0 -17
  40. data/doc/classes/FireRuby/Connection.src/M000052.html +0 -18
  41. data/doc/classes/FireRuby/Connection.src/M000053.html +0 -18
  42. data/doc/classes/FireRuby/Connection.src/M000054.html +0 -18
  43. data/doc/classes/FireRuby/Database.html +0 -292
  44. data/doc/classes/FireRuby/Database.src/CVS/Entries +0 -7
  45. data/doc/classes/FireRuby/Database.src/CVS/Repository +0 -1
  46. data/doc/classes/FireRuby/Database.src/CVS/Root +0 -1
  47. data/doc/classes/FireRuby/Database.src/M000035.html +0 -17
  48. data/doc/classes/FireRuby/Database.src/M000036.html +0 -17
  49. data/doc/classes/FireRuby/Database.src/M000037.html +0 -17
  50. data/doc/classes/FireRuby/Database.src/M000038.html +0 -18
  51. data/doc/classes/FireRuby/Database.src/M000039.html +0 -17
  52. data/doc/classes/FireRuby/Database.src/M000040.html +0 -17
  53. data/doc/classes/FireRuby/FireRubyError.html +0 -221
  54. data/doc/classes/FireRuby/FireRubyError.src/CVS/Entries +0 -6
  55. data/doc/classes/FireRuby/FireRubyError.src/CVS/Repository +0 -1
  56. data/doc/classes/FireRuby/FireRubyError.src/CVS/Root +0 -1
  57. data/doc/classes/FireRuby/FireRubyError.src/M000041.html +0 -17
  58. data/doc/classes/FireRuby/FireRubyError.src/M000042.html +0 -17
  59. data/doc/classes/FireRuby/FireRubyError.src/M000043.html +0 -17
  60. data/doc/classes/FireRuby/FireRubyError.src/M000044.html +0 -17
  61. data/doc/classes/FireRuby/FireRubyError.src/M000045.html +0 -17
  62. data/doc/classes/FireRuby/Generator.html +0 -343
  63. data/doc/classes/FireRuby/Generator.src/CVS/Entries +0 -9
  64. data/doc/classes/FireRuby/Generator.src/CVS/Repository +0 -1
  65. data/doc/classes/FireRuby/Generator.src/CVS/Root +0 -1
  66. data/doc/classes/FireRuby/Generator.src/M000001.html +0 -17
  67. data/doc/classes/FireRuby/Generator.src/M000002.html +0 -17
  68. data/doc/classes/FireRuby/Generator.src/M000003.html +0 -17
  69. data/doc/classes/FireRuby/Generator.src/M000004.html +0 -17
  70. data/doc/classes/FireRuby/Generator.src/M000005.html +0 -17
  71. data/doc/classes/FireRuby/Generator.src/M000006.html +0 -17
  72. data/doc/classes/FireRuby/Generator.src/M000007.html +0 -17
  73. data/doc/classes/FireRuby/Generator.src/M000008.html +0 -17
  74. data/doc/classes/FireRuby/ResultSet.html +0 -343
  75. data/doc/classes/FireRuby/ResultSet.src/CVS/Entries +0 -10
  76. data/doc/classes/FireRuby/ResultSet.src/CVS/Repository +0 -1
  77. data/doc/classes/FireRuby/ResultSet.src/CVS/Root +0 -1
  78. data/doc/classes/FireRuby/ResultSet.src/M000026.html +0 -17
  79. data/doc/classes/FireRuby/ResultSet.src/M000027.html +0 -17
  80. data/doc/classes/FireRuby/ResultSet.src/M000028.html +0 -17
  81. data/doc/classes/FireRuby/ResultSet.src/M000029.html +0 -17
  82. data/doc/classes/FireRuby/ResultSet.src/M000030.html +0 -17
  83. data/doc/classes/FireRuby/ResultSet.src/M000031.html +0 -17
  84. data/doc/classes/FireRuby/ResultSet.src/M000032.html +0 -17
  85. data/doc/classes/FireRuby/ResultSet.src/M000033.html +0 -17
  86. data/doc/classes/FireRuby/ResultSet.src/M000034.html +0 -17
  87. data/doc/classes/FireRuby/Statement.html +0 -349
  88. data/doc/classes/FireRuby/Statement.src/CVS/Entries +0 -10
  89. data/doc/classes/FireRuby/Statement.src/CVS/Repository +0 -1
  90. data/doc/classes/FireRuby/Statement.src/CVS/Root +0 -1
  91. data/doc/classes/FireRuby/Statement.src/M000017.html +0 -17
  92. data/doc/classes/FireRuby/Statement.src/M000018.html +0 -17
  93. data/doc/classes/FireRuby/Statement.src/M000019.html +0 -17
  94. data/doc/classes/FireRuby/Statement.src/M000020.html +0 -17
  95. data/doc/classes/FireRuby/Statement.src/M000021.html +0 -17
  96. data/doc/classes/FireRuby/Statement.src/M000022.html +0 -17
  97. data/doc/classes/FireRuby/Statement.src/M000023.html +0 -18
  98. data/doc/classes/FireRuby/Statement.src/M000024.html +0 -18
  99. data/doc/classes/FireRuby/Statement.src/M000025.html +0 -17
  100. data/doc/classes/FireRuby/Transaction.html +0 -484
  101. data/doc/classes/FireRuby/Transaction.src/CVS/Entries +0 -9
  102. data/doc/classes/FireRuby/Transaction.src/CVS/Repository +0 -1
  103. data/doc/classes/FireRuby/Transaction.src/CVS/Root +0 -1
  104. data/doc/classes/FireRuby/Transaction.src/M000009.html +0 -17
  105. data/doc/classes/FireRuby/Transaction.src/M000010.html +0 -17
  106. data/doc/classes/FireRuby/Transaction.src/M000011.html +0 -17
  107. data/doc/classes/FireRuby/Transaction.src/M000012.html +0 -17
  108. data/doc/classes/FireRuby/Transaction.src/M000013.html +0 -17
  109. data/doc/classes/FireRuby/Transaction.src/M000014.html +0 -17
  110. data/doc/classes/FireRuby/Transaction.src/M000015.html +0 -18
  111. data/doc/classes/FireRuby/Transaction.src/M000016.html +0 -17
  112. data/doc/classes/FireRuby.html +0 -116
  113. data/doc/created.rid +0 -1
  114. data/doc/files/CVS/Entries +0 -2
  115. data/doc/files/CVS/Repository +0 -1
  116. data/doc/files/CVS/Root +0 -1
  117. data/doc/files/src_rb.html +0 -119
  118. data/doc/fr_class_index.html +0 -34
  119. data/doc/fr_file_index.html +0 -27
  120. data/doc/fr_method_index.html +0 -80
  121. data/doc/index.html +0 -24
  122. data/doc/rdoc-style.css +0 -175
  123. data/test/example.c +0 -91
  124. data/test/fb.c +0 -297
  125. data/test/mfb +0 -1
  126. data/test/sql_unit_test.fdb +0 -0
  127. data/test/test.fdb +0 -0
data/test/example.c DELETED
@@ -1,91 +0,0 @@
1
- #include <ibase.h>
2
-
3
- #define LASTLEN 20
4
- #define FIRSTLEN 15
5
- #define EXTLEN 4
6
-
7
- typedef struct vary
8
- {
9
- short vary_length;
10
- char vary_string[1];
11
- } VARY;
12
-
13
- ISC_STATUS status_vector[20],
14
- retcode;
15
- long SQLCODE;
16
- XSQLDA *osqlda;
17
- XSQLVAR *ovar;
18
- short flag0,
19
- flag1,
20
- flag2;
21
- char *str = "SELECT last_name, first_name, phone_ext FROM phone_list "\
22
- "WHERE location = "Monterey" ORDER BY last_name, first_name";
23
- char last_name[LASTLEN + 2];
24
- char first_name[FIRSTLEN + 2];
25
- char phone_ext[EXTLEN + 2];
26
- VARY *vary;
27
-
28
- /* Allocate an output XSQLDA osqlda. */
29
- osqlda = (XSQLDA *)malloc(XSQLDA_LENGTH(3);
30
- osqlda->version = SQLDA_VERSION1;
31
- osqlda->sqln = 3;
32
-
33
- /* Prepare the statement. */
34
- isc_dsql_prepare(status_vector,
35
- &tr_handle, /* Set in previous isc_start_transaction() call. */
36
- &stmt_handle, /* Allocated previously by isc_dsql_allocate_statement() or isc_dsql_alloc_statement2() call. */
37
- 0,
38
- str,
39
- 1,
40
- osqlda);
41
-
42
- if (status_vector[0] == 1 && status_vector[1])
43
- {
44
- /* Process error. */
45
- isc_print_status(status_vector);
46
- return(1);
47
- }
48
-
49
- /* Set up an output XSQLVAR structure to allocate space for each item to be returned. */
50
- osqlda->sqlvar[0].sqldata = last_name;
51
- osqlda->sqlvar[0].sqltype = SQL_VARYING + 1;
52
- osqlda->sqlvar[0].sqlind = &flag0;
53
- osqlda->sqlvar[1].sqldata = first_name;
54
- osqlda->sqlvar[1].sqltype = SQL_VARYING + 1;
55
- osqlda->sqlvar[1].sqlind = &flag1;
56
- osqlda->sqlvar[2].sqldata = phone_ext;
57
- osqlda->sqlvar[2].sqltype = SQL_VARYING + 1;
58
- osqlda->sqlvar[2].sqlind = &flag2;
59
-
60
- /* Execute the statement. */
61
- isc_dsql_execute(status_vector,
62
- &tr_handle, /* Set in previous isc_start_transaction() call. */
63
- &stmt_handle, /* Allocated previously by isc_dsql_allocate_statement() or isc_dsql_alloc_statement2() call. */
64
- 1,
65
- NULL);
66
-
67
- if (status_vector[0] == 1 && status_vector[1])
68
- {
69
- /* Process error. */
70
- isc_print_status(status_vector);
71
- return(1);
72
- }
73
-
74
- printf("\n%-20s %-15s %-10s\n\n", "LAST NAME", "FIRST NAME", "EXTENSION");
75
-
76
- /* Fetch and print the records in the select list one by one. */
77
- while((retcode = isc_dsql_fetch( status_vector, &stmt_handle, 1, osqlda)) == 0)
78
- {
79
- vary = (VARY *)last_name;
80
- printf("%-20.*s ", vary->vary_length, vary->vary_string);
81
- vary = (VARY *)first_name;
82
- printf("%-15.*s ", vary->vary_length, vary->vary_string);
83
- vary = (VARY *)phone_ext;
84
- printf("%-4.*s ", vary->vary_length, vary->vary_string);
85
- }
86
-
87
- if(retcode != 100L)
88
- {
89
- SQLCODE = isc_sqlcode(status_vector);
90
- isc_print_sqlerror(SQLCODE, status_vector); return(1);
91
- }
data/test/fb.c DELETED
@@ -1,297 +0,0 @@
1
- #include <stdio.h>
2
- #include <string.h>
3
- #include "ibase.h"
4
-
5
- long *buffer;
6
- unsigned int buffer_size;
7
-
8
- void writeError(ISC_STATUS *);
9
- void prepareXSQLDA(XSQLDA *);
10
- unsigned int calculateSize(XSQLDA *);
11
- void writeBuffer(void *, unsigned int);
12
-
13
- #define USERNAME "sysdba"
14
- #define PASSWORD "masterkey"
15
- #define DATABASE "./test.fdb"
16
- #define SQL "SELECT * FROM USERS"
17
- #define ALIGN(ptr, n) ((ptr + n - 1) & ~(n - 1))
18
-
19
- int main(void)
20
- {
21
- char dpb[100],
22
- *location = dpb;
23
- isc_db_handle db = 0;
24
- short size = 0;
25
- ISC_STATUS status[20];
26
- unsigned int length = 0;
27
-
28
- /* Prepare the DPB and connect to the database. */
29
- memset(dpb, 0, 100);
30
- *location++ = isc_dpb_version1;
31
-
32
- size = strlen(USERNAME);
33
- *location++ = isc_dpb_user_name;
34
- *location++ = (char)size;
35
- memcpy(location, USERNAME, size);
36
- location += size;
37
-
38
- size = strlen(PASSWORD);
39
- *location++ = isc_dpb_password;
40
- *location++ = (char)size;
41
- memcpy(location, PASSWORD, size);
42
- location += size;
43
-
44
- length = strlen(USERNAME) + strlen(PASSWORD) + 5;
45
- if(isc_attach_database(status, strlen(DATABASE), DATABASE, &db,
46
- length, dpb) == 0)
47
- {
48
- isc_tr_handle tr = 0;
49
-
50
- /* Start a transaction. */
51
- if(isc_start_transaction(status, &tr, 1, &db, 0, NULL) == 0)
52
- {
53
- isc_stmt_handle stmt = 0;
54
-
55
- /* Create a SQL statment. */
56
- if(isc_dsql_allocate_statement(status, &db, &stmt) == 0)
57
- {
58
- XSQLDA *da = (XSQLDA *)malloc(XSQLDA_LENGTH(3));
59
-
60
- /* Prepare the statement for execution. */
61
- if(da != NULL)
62
- {
63
- da->version = SQLDA_VERSION1;
64
- da->sqln = 3;
65
- if(isc_dsql_prepare(status, &tr, &stmt, 0, SQL, 3, da) == 0)
66
- {
67
- XSQLDA *actual = NULL;
68
-
69
- /* Check if the XSQLDA needs resizing. */
70
- if(da->sqld > da->sqln)
71
- {
72
- /* Allocate the new XSQLDA. */
73
- actual = (XSQLDA *)malloc(XSQLDA_LENGTH(da->sqld));
74
- if(actual != NULL)
75
- {
76
- /* Bind the details to the new XSQLDA. */
77
- actual->version = SQLDA_VERSION1;
78
- actual->sqln = da->sqld;
79
- if(isc_dsql_describe(status, &stmt, SQL_DIALECT_V6,
80
- actual) != 0)
81
- {
82
- /* Print an error. */
83
- fprintf(stderr, "DSQL describe call failed.\n");
84
- writeError(status);
85
- }
86
- else
87
- {
88
- /* Slot the new XSQLDA into place. */
89
- free(da);
90
- printf("Assigning updated XSQLDA (%p).\n", actual);
91
- da = actual;
92
- }
93
- }
94
- else
95
- {
96
- /* Print an error message. */
97
- fprintf(stderr, "Error resizing XSQLDA.");
98
- }
99
- }
100
-
101
- /* Prepare the XSQLDA for use. */
102
- prepareXSQLDA(da);
103
-
104
- /* Execute the statement. */
105
- fprintf(stderr, "Calling isc_dsql_execute().\n");
106
- if(isc_dsql_execute(status, &tr, &stmt, SQL_DIALECT_V6,
107
- NULL) == 0)
108
- {
109
- /* Fetch a row of data. */
110
- fprintf(stderr, "Calling isc_dsql_fetch().\n");
111
- if(isc_dsql_fetch(status, &stmt, SQL_DIALECT_V6, da) != 0)
112
- {
113
- /* Print an error. */
114
- fprintf(stderr, "Error performing SQL fetch.\n");
115
- writeError(status);
116
- }
117
- else
118
- {
119
- writeBuffer(buffer, sizeof(long) * buffer_size);
120
- }
121
- }
122
- else
123
- {
124
- /* Print an error. */
125
- fprintf(stderr, "Error executing the SQL statement.\n");
126
- writeError(status);
127
- }
128
-
129
- /* Free the XQSLDA memory. */
130
- free(da);
131
- }
132
- else
133
- {
134
- /* Print an error and rollback the transaction. */
135
- fprintf(stderr, "Error preparing the SQL statement.\n");
136
- isc_rollback_transaction(status, &tr);
137
- }
138
- }
139
-
140
- /* Release the statement resources. */
141
- isc_dsql_free_statement(status, &stmt, DSQL_drop);
142
- }
143
- else
144
- {
145
- /* Print an error and rollback the transaction. */
146
- fprintf(stderr, "Error allocating the SQL statement.\n");
147
- isc_rollback_transaction(status, &tr);
148
- }
149
- }
150
- else
151
- {
152
- /* Print an error. */
153
- fprintf(stderr, "Error starting a transaction.\n");
154
- }
155
-
156
- /* Close the database. */
157
- isc_detach_database(status, &db);
158
- printf("Database closed, program exiting.\n");
159
- }
160
- else
161
- {
162
- /* Print an error. */
163
- fprintf(stderr, "Error connecting as %s/%s to the '%s' database.\n",
164
- USERNAME, PASSWORD, DATABASE);
165
- }
166
-
167
- return(0);
168
- }
169
-
170
-
171
- void writeError(ISC_STATUS *status)
172
- {
173
- if(status != NULL && (status[0] == 1 && status[1] != 0))
174
- {
175
- char text[1024];
176
- ISC_STATUS local[20];
177
- long code = 0;
178
-
179
- while(isc_interprete(text, &status))
180
- {
181
- fprintf(stderr, "%s\n", text);
182
- }
183
- code = isc_sqlcode(local);
184
- isc_sql_interprete(code, text, 1024);
185
- fprintf(stderr, "%s\n", text);
186
- }
187
- else
188
- {
189
- /* Write a simple message. */
190
- printf("No error details available.\n");
191
- }
192
- }
193
-
194
-
195
- void prepareXSQLDA(XSQLDA *da)
196
- {
197
- XSQLVAR *var = da->sqlvar;
198
- int error = 0,
199
- offset = 0,
200
- length = 0,
201
- align = 0;
202
- short i;
203
-
204
- buffer = (long *)malloc(sizeof(long) * calculateSize(da));
205
- printf("Received %p for preparation.\n", da);
206
- for(i = 0; i < da->sqln && error == 0; i++, var++)
207
- {
208
- int type = (var->sqltype & ~1);
209
-
210
- length = align = var->sqllen;
211
- switch(type)
212
- {
213
- case SQL_TEXT : /* Type: CHAR */
214
- printf("Allocating memory for a CHAR (%d chars).\n", var->sqllen);
215
- align = 1;
216
- break;
217
-
218
- case SQL_VARYING :
219
- printf("Allocating memory for a VARCHAR (%d chars).\n", var->sqllen);
220
- length += sizeof(short) + 1;
221
- align = sizeof(short);
222
- break;
223
- } /* End of switch. */
224
-
225
- /* Assign data pointers, correcting for alignment. */
226
- offset = FB_ALIGN(offset, align);
227
- var->sqldata = (char *)buffer + offset;
228
- offset += length;
229
- offset = FB_ALIGN(offset, sizeof(short));
230
- var->sqlind = (short *)((char *)buffer + offset);
231
- offset += sizeof(short);
232
- } /* End of for loop. */
233
- }
234
-
235
-
236
- unsigned int calculateSize(XSQLDA *da)
237
- {
238
- unsigned int size = 0;
239
- long total = 0;
240
- int align,
241
- length,
242
- i;
243
- XSQLVAR *var = da->sqlvar;
244
-
245
- for(i = 0; i < da->sqln; i++, var++)
246
- {
247
- int type = (var->sqltype & ~1);
248
-
249
- align = var->sqllen;
250
- switch(type)
251
- {
252
- case SQL_TEXT :
253
- align = 1;
254
- break;
255
-
256
- case SQL_VARYING :
257
- align = sizeof(short);
258
- length = var->sqllen + sizeof(short) + 1;
259
- break;
260
-
261
- default :
262
- length = var->sqllen;
263
- }
264
- total = FB_ALIGN(total, align);
265
- total += length;
266
- total = FB_ALIGN(total, sizeof(short));
267
- total += sizeof(short);
268
- }
269
-
270
- size = (unsigned int)(total / sizeof(long));
271
- if(total % sizeof(long) > 0)
272
- {
273
- size++;
274
- }
275
-
276
- printf("%d bytes (%d longs) required for storage.\n", total, size);
277
- buffer_size = size;
278
- return(size);
279
- }
280
-
281
-
282
- void writeBuffer(void *buffer, unsigned int length)
283
- {
284
- char *offset = (char *)buffer;
285
- unsigned int i;
286
-
287
- for(i = 0; i < length; i++, offset++)
288
- {
289
- if(*offset < 32)
290
- printf(".");
291
- else
292
- printf("%c", *offset);
293
- if(i % 50 == 0)
294
- printf("\n");
295
- }
296
- printf("\n");
297
- }
data/test/mfb DELETED
@@ -1 +0,0 @@
1
- gcc -g -o fb fb.c -framework Firebird -I/Library/Frameworks/Firebird.framework/Headers
Binary file
data/test/test.fdb DELETED
Binary file