Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
// +----------------------------------------------------------------------+
3
// | PHP Version 4                                                        |
4
// +----------------------------------------------------------------------+
5
// | Copyright (c) 1998-2004 Manuel Lemos, Tomas V.V.Cox,                 |
6
// | Stig. S. Bakken, Lukas Smith                                         |
7
// | All rights reserved.                                                 |
8
// +----------------------------------------------------------------------+
9
// | MDB is a merge of PEAR DB and Metabases that provides a unified DB   |
10
// | API as well as database abstraction for PHP applications.            |
11
// | This LICENSE is in the BSD license style.                            |
12
// |                                                                      |
13
// | Redistribution and use in source and binary forms, with or without   |
14
// | modification, are permitted provided that the following conditions   |
15
// | are met:                                                             |
16
// |                                                                      |
17
// | Redistributions of source code must retain the above copyright       |
18
// | notice, this list of conditions and the following disclaimer.        |
19
// |                                                                      |
20
// | Redistributions in binary form must reproduce the above copyright    |
21
// | notice, this list of conditions and the following disclaimer in the  |
22
// | documentation and/or other materials provided with the distribution. |
23
// |                                                                      |
24
// | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |
25
// | Lukas Smith nor the names of his contributors may be used to endorse |
26
// | or promote products derived from this software without specific prior|
27
// | written permission.                                                  |
28
// |                                                                      |
29
// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |
30
// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |
31
// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |
32
// | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |
33
// | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |
34
// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
35
// | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|
36
// |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |
37
// | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |
38
// | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|
39
// | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |
40
// | POSSIBILITY OF SUCH DAMAGE.                                          |
41
// +----------------------------------------------------------------------+
42
// | Author: Lukas Smith <smith@backendmedia.com>                         |
43
// +----------------------------------------------------------------------+
44
//
45
// $Id: metabase_wrapper.php,v 1.50.4.1 2004/01/08 13:43:02 lsmith Exp $
46
//
47
 
48
MDB::loadFile('Date');
49
 
50
/**
51
 * Wrapper that makes MDB behave like Metabase
52
 *
53
 * @package MDB
54
 * @category Database
55
 * @author  Lukas Smith <smith@backendmedia.com>
56
 */
57
 
58
$lob_error = '';
59
 
60
function MetabaseSetupDatabase($arguments, &$database)
61
{
62
    _convertArguments($arguments, $dsninfo, $options);
63
    $db =& MDB::connect($dsninfo, $options);
64
 
65
    if (MDB::isError($db) || !is_object($db)) {
66
        $database = 0;
67
        return($db->getMessage());
68
    }
69
    $database = $db->database;
70
    return('');
71
}
72
 
73
function MetabaseSetupDatabaseObject($arguments, &$db)
74
{
75
    _convertArguments($arguments, $dsninfo, $options);
76
    $db =& MDB::connect($dsninfo, $options);
77
 
78
    if (MDB::isError($db) || !is_object($db)) {
79
        return($db->getMessage());
80
    }
81
    return('');
82
}
83
 
84
function _convertArguments($arguments, &$dsninfo, &$options)
85
{
86
    if (isset($arguments['Type'])) {
87
        $dsninfo['phptype'] = $arguments['Type'];
88
    }
89
    if (isset($arguments['User'])) {
90
        $dsninfo['username'] = $arguments['User'];
91
    }
92
    if(isset($arguments['Password'])) {
93
        $dsninfo['password'] = $arguments['Password'];
94
    }
95
    if(isset($arguments['Host'])) {
96
        $dsninfo['hostspec'] = $arguments['Host'];
97
    }
98
    if(isset($arguments['Options']['Port'])) {
99
       $dsninfo['port'] = $arguments['Options']['Port'];
100
       unset($arguments['Options']['Port']);
101
    }
102
 
103
    if (isset($arguments['Persistent'])) {
104
        $options['persistent'] = TRUE;
105
    }
106
    if(isset($arguments['Debug'])) {
107
        $options['debug'] = $arguments['Debug'];
108
    }
109
    if(isset($arguments['DecimalPlaces'])) {
110
        $options['decimal_places'] = $arguments['DecimalPlaces'];
111
    }
112
    if(isset($arguments['LOBBufferLength'])) {
113
        $options['LOBbufferlength'] = $arguments['LOBBufferLength'];
114
    }
115
    if(isset($arguments['LogLineBreak'])) {
116
        $options['loglinebreak'] = $arguments['LogLineBreak'];
117
    }
118
 
119
    $options['seqname_format'] = '_sequence_%s';
120
    if(isset($arguments['Options']) && is_array($arguments['Options'])) {
121
       $options = array_merge($options, $arguments['Options']);
122
    }
123
}
124
 
125
function MetabaseCloseSetup($database)
126
{
127
    global $_MDB_databases;
128
 
129
    $_MDB_databases[$database]->disconnect();
130
    unset($_MDB_databases[$database]);
131
}
132
 
133
function MetabaseQuery($database, $query)
134
{
135
    global $_MDB_databases;
136
    $result = $_MDB_databases[$database]->query($query);
137
    if (MDB::isError($result)) {
138
        $_MDB_databases[$database]->setError('Query', $result->getMessage());
139
        return(0);
140
    } else {
141
        return($result);
142
    }
143
}
144
 
145
function MetabaseQueryField($database, $query, &$field, $type = 'text')
146
{
147
    global $_MDB_databases;
148
    $result = $_MDB_databases[$database]->queryOne($query, $type);
149
    if (MDB::isError($result)) {
150
        $_MDB_databases[$database]->setError('QueryField', $result->getMessage());
151
        return(0);
152
    } else {
153
        $field = $result;
154
        return(1);
155
    }
156
}
157
 
158
function MetabaseQueryRow($database, $query, &$row, $types = '')
159
{
160
    global $_MDB_databases;
161
    $result = $_MDB_databases[$database]->queryRow($query, $types);
162
    if (MDB::isError($result)) {
163
        $_MDB_databases[$database]->setError('QueryRow', $result->getMessage());
164
        return(0);
165
    } else {
166
        $row = $result;
167
        return(1);
168
    }
169
}
170
 
171
function MetabaseQueryColumn($database, $query, &$column, $type = 'text')
172
{
173
    global $_MDB_databases;
174
    $result = $_MDB_databases[$database]->queryCol($query, $type);
175
    if (MDB::isError($result)) {
176
        $_MDB_databases[$database]->setError('QueryColumn', $result->getMessage());
177
        return(0);
178
    } else {
179
        $column = $result;
180
        return(1);
181
    }
182
}
183
 
184
function MetabaseQueryAll($database, $query, &$all, $types = '')
185
{
186
    global $_MDB_databases;
187
    $result = $_MDB_databases[$database]->queryAll($query, $types);
188
    if (MDB::isError($result)) {
189
        $_MDB_databases[$database]->setError('QueryAll', $result->getMessage());
190
        return(0);
191
    } else {
192
        $all = $result;
193
        return(1);
194
    }
195
}
196
 
197
function MetabaseReplace($database, $table, &$fields)
198
{
199
    global $_MDB_databases;
200
    for($count = count($fields), reset($fields), $field = 0;
201
        $field < $count;
202
        next($fields), $field++)
203
    {
204
        $name = key($fields);
205
        if(!isset($fields[$name]['Type'])) {
206
            $fields[$name]['Type'] = 'text';
207
        }
208
    }
209
    $result = $_MDB_databases[$database]->replace($table, $fields);
210
    if (MDB::isError($result)) {
211
        $_MDB_databases[$database]->setError('Replace', $result->getMessage());
212
        return(0);
213
    } else {
214
        return(1);
215
    }
216
}
217
 
218
function MetabasePrepareQuery($database, $query)
219
{
220
    global $_MDB_databases;
221
    $result = $_MDB_databases[$database]->prepareQuery($query);
222
    if (MDB::isError($result)) {
223
        $_MDB_databases[$database]->setError('PrepareQuery', $result->getMessage());
224
        return(0);
225
    } else {
226
        return($result);
227
    }
228
}
229
 
230
function MetabaseFreePreparedQuery($database, $prepared_query)
231
{
232
    global $_MDB_databases;
233
    $result = $_MDB_databases[$database]->freePreparedQuery($prepared_query);
234
    if (MDB::isError($result)) {
235
        $_MDB_databases[$database]->setError('FreePreparedQuery', $result->getMessage());
236
        return(0);
237
    } else {
238
        return($result);
239
    }
240
}
241
 
242
function MetabaseExecuteQuery($database, $prepared_query)
243
{
244
    global $_MDB_databases;
245
    $result = $_MDB_databases[$database]->executeQuery($prepared_query);
246
    if (MDB::isError($result)) {
247
        $_MDB_databases[$database]->setError('ExecuteQuery', $result->getMessage());
248
        return(0);
249
    } else {
250
        return($result);
251
    }
252
}
253
 
254
function MetabaseQuerySet($database, $prepared_query, $parameter, $type, $value, $is_null = 0, $field = '')
255
{
256
    global $_MDB_databases;
257
    $result = $_MDB_databases[$database]->setParam($prepared_query, $parameter, $type, $value, $is_null, $field);
258
    if (MDB::isError($result)) {
259
        $_MDB_databases[$database]->setError('QuerySet', $result->getMessage());
260
        return(0);
261
    } else {
262
        return(1);
263
    }
264
}
265
 
266
function MetabaseQuerySetNull($database, $prepared_query, $parameter, $type)
267
{
268
    global $_MDB_databases;
269
    $result = $_MDB_databases[$database]->setParamNull($prepared_query, $parameter, $type);
270
    if (MDB::isError($result)) {
271
        $_MDB_databases[$database]->setError('QuerySetNull', $result->getMessage());
272
        return(0);
273
    } else {
274
        return(1);
275
    }
276
}
277
 
278
function MetabaseQuerySetText($database, $prepared_query, $parameter, $value)
279
{
280
    global $_MDB_databases;
281
    $result = $_MDB_databases[$database]->setParamText($prepared_query, $parameter, $value);
282
    if (MDB::isError($result)) {
283
        $_MDB_databases[$database]->setError('QuerySetText', $result->getMessage());
284
        return(0);
285
    } else {
286
        return(1);
287
    }
288
}
289
 
290
function MetabaseQuerySetCLOB($database, $prepared_query, $parameter, $value, $field)
291
{
292
    global $_MDB_databases;
293
    $result = $_MDB_databases[$database]->setParamClob($prepared_query, $parameter, $value, $field);
294
    if (MDB::isError($result)) {
295
        $_MDB_databases[$database]->setError('QuerySetCLOB', $result->getMessage());
296
        return(0);
297
    } else {
298
        return(1);
299
    }
300
}
301
 
302
function MetabaseQuerySetBLOB($database, $prepared_query, $parameter, $value, $field)
303
{
304
    global $_MDB_databases;
305
    $result = $_MDB_databases[$database]->setParamBlob($prepared_query, $parameter, $value, $field);
306
    if (MDB::isError($result)) {
307
        $_MDB_databases[$database]->setError('QuerySetBLOB', $result->getMessage());
308
        return(0);
309
    } else {
310
        return(1);
311
    }
312
}
313
 
314
function MetabaseQuerySetInteger($database, $prepared_query, $parameter, $value)
315
{
316
    global $_MDB_databases;
317
    $result = $_MDB_databases[$database]->setParamInteger($prepared_query, $parameter, $value);
318
    if (MDB::isError($result)) {
319
        $_MDB_databases[$database]->setError('QuerySetInteger', $result->getMessage());
320
        return(0);
321
    } else {
322
        return(1);
323
    }
324
}
325
 
326
function MetabaseQuerySetBoolean($database, $prepared_query, $parameter, $value)
327
{
328
    global $_MDB_databases;
329
    $result = $_MDB_databases[$database]->setParamBoolean($prepared_query, $parameter, $value);
330
    if (MDB::isError($result)) {
331
        $_MDB_databases[$database]->setError('QuerySetBoolean', $result->getMessage());
332
        return(0);
333
    } else {
334
        return(1);
335
    }
336
}
337
 
338
function MetabaseQuerySetDate($database, $prepared_query, $parameter, $value)
339
{
340
    global $_MDB_databases;
341
    $result = $_MDB_databases[$database]->setParamDate($prepared_query, $parameter, $value);
342
    if (MDB::isError($result)) {
343
        $_MDB_databases[$database]->setError('QuerySetDate(', $result->getMessage());
344
        return(0);
345
    } else {
346
        return(1);
347
    }
348
}
349
 
350
function MetabaseQuerySetTimestamp($database, $prepared_query, $parameter, $value)
351
{
352
    global $_MDB_databases;
353
    $result = $_MDB_databases[$database]->setParamTimestamp($prepared_query, $parameter, $value);
354
    if (MDB::isError($result)) {
355
        $_MDB_databases[$database]->setError('QuerySetTimestamp', $result->getMessage());
356
        return(0);
357
    } else {
358
        return(1);
359
    }
360
}
361
 
362
function MetabaseQuerySetTime($database, $prepared_query, $parameter, $value)
363
{
364
    global $_MDB_databases;
365
    $result = $_MDB_databases[$database]->setParamTime($prepared_query, $parameter, $value);
366
    if (MDB::isError($result)) {
367
        $_MDB_databases[$database]->setError('QuerySetTime', $result->getMessage());
368
        return(0);
369
    } else {
370
        return(1);
371
    }
372
}
373
 
374
function MetabaseQuerySetFloat($database, $prepared_query, $parameter, $value)
375
{
376
    global $_MDB_databases;
377
    $result = $_MDB_databases[$database]->setParamFloat($prepared_query, $parameter, $value);
378
    if (MDB::isError($result)) {
379
        $_MDB_databases[$database]->setError('QuerySetFloat', $result->getMessage());
380
        return(0);
381
    } else {
382
        return(1);
383
    }
384
}
385
 
386
function MetabaseQuerySetDecimal($database, $prepared_query, $parameter, $value)
387
{
388
    global $_MDB_databases;
389
    $result = $_MDB_databases[$database]->setParamDecimal($prepared_query, $parameter, $value);
390
    if (MDB::isError($result)) {
391
        $_MDB_databases[$database]->setError('QuerySetDecimal', $result->getMessage());
392
        return(0);
393
    } else {
394
        return(1);
395
    }
396
}
397
 
398
function MetabaseAffectedRows($database, &$affected_rows)
399
{
400
    global $_MDB_databases;
401
    $result = $_MDB_databases[$database]->affectedRows();
402
    if (MDB::isError($result)) {
403
        $_MDB_databases[$database]->setError('AffectedRows', $result->getMessage());
404
        return(0);
405
    } else {
406
        $affected_rows = $result;
407
        return(1);
408
    }
409
}
410
 
411
function MetabaseFetchResult($database, $result, $row, $field)
412
{
413
    global $_MDB_databases;
414
    $result = $_MDB_databases[$database]->fetch($result, $row, $field);
415
    if (MDB::isError($result)) {
416
        $_MDB_databases[$database]->setError('FetchResult', $result->getMessage());
417
        return(0);
418
    } else {
419
        return($result);
420
    }
421
}
422
 
423
function MetabaseFetchCLOBResult($database, $result, $row, $field)
424
{
425
    global $_MDB_databases;
426
    $result = $_MDB_databases[$database]->fetchClob($result, $row, $field);
427
    if (MDB::isError($result)) {
428
        $_MDB_databases[$database]->setError('FetchCLOBResult', $result->getMessage());
429
        return(0);
430
    } else {
431
        return($result);
432
    }
433
}
434
 
435
function MetabaseFetchBLOBResult($database, $result, $row, $field)
436
{
437
    global $_MDB_databases;
438
    $result = $_MDB_databases[$database]->fetchBlob($result, $row, $field);
439
    if (MDB::isError($result)) {
440
        $_MDB_databases[$database]->setError('FetchBLOBResult', $result->getMessage());
441
        return(0);
442
    } else {
443
        return($result);
444
    }
445
}
446
 
447
function MetabaseDestroyResultLOB($database, $lob)
448
{
449
    global $_MDB_databases;
450
    $result = $_MDB_databases[$database]->_destroyResultLob($lob);
451
    if (MDB::isError($result)) {
452
        $_MDB_databases[$database]->setError('DestroyResultLOB', $result->getMessage());
453
        return(0);
454
    } else {
455
        return(1);
456
    }
457
}
458
 
459
function MetabaseEndOfResultLOB($database, $lob)
460
{
461
    global $_MDB_databases;
462
    $result = $_MDB_databases[$database]->endOfResultLob($lob);
463
    if (MDB::isError($result)) {
464
        $_MDB_databases[$database]->setError('EndOfResultLOB', $result->getMessage());
465
        return(0);
466
    } else {
467
        return($result);
468
    }
469
}
470
 
471
function MetabaseReadResultLOB($database, $lob, &$data, $length)
472
{
473
    global $_MDB_databases;
474
    $result = $_MDB_databases[$database]->_readResultLob($lob, $data, $length);
475
    if (MDB::isError($result)) {
476
        $_MDB_databases[$database]->setError('ReadResultLOB', $result->getMessage());
477
        return(0);
478
    } else {
479
        return(1);
480
    }
481
}
482
 
483
function MetabaseResultIsNull($database, $result, $row, $field)
484
{
485
    global $_MDB_databases;
486
    $result = $_MDB_databases[$database]->resultIsNull($result, $row, $field);
487
    if (MDB::isError($result)) {
488
        $_MDB_databases[$database]->setError('ResultIsNull', $result->getMessage());
489
        return(0);
490
    } else {
491
        return($result);
492
    }
493
}
494
 
495
function MetabaseFetchDateResult($database, $result, $row, $field)
496
{
497
    global $_MDB_databases;
498
    $result = $_MDB_databases[$database]->fetchDate($result, $row, $field);
499
    if (MDB::isError($result)) {
500
        $_MDB_databases[$database]->setError('FetchDateResult', $result->getMessage());
501
        return(0);
502
    } else {
503
        return($result);
504
    }
505
}
506
 
507
function MetabaseFetchTimestampResult($database, $result, $row, $field)
508
{
509
    global $_MDB_databases;
510
    $result = $_MDB_databases[$database]->fetchTimestamp($result, $row, $field);
511
    if (MDB::isError($result)) {
512
        $_MDB_databases[$database]->setError('FetchTimestampResult', $result->getMessage());
513
        return(0);
514
    } else {
515
        return($result);
516
    }
517
}
518
 
519
function MetabaseFetchTimeResult($database, $result, $row, $field)
520
{
521
    global $_MDB_databases;
522
    $result = $_MDB_databases[$database]->fetchTime($result, $row, $field);
523
    if (MDB::isError($result)) {
524
        $_MDB_databases[$database]->setError('FetchTimeResult', $result->getMessage());
525
        return(0);
526
    } else {
527
        return($result);
528
    }
529
}
530
 
531
function MetabaseFetchBooleanResult($database, $result, $row, $field)
532
{
533
    global $_MDB_databases;
534
    $result = $_MDB_databases[$database]->fetchBoolean($result, $row, $field);
535
    if (MDB::isError($result)) {
536
        $_MDB_databases[$database]->setError('FetchBooleanResult', $result->getMessage());
537
        return(0);
538
    } else {
539
        return($result);
540
    }
541
}
542
 
543
function MetabaseFetchFloatResult($database, $result, $row, $field)
544
{
545
    global $_MDB_databases;
546
    $result = $_MDB_databases[$database]->fetchFloat($result, $row, $field);
547
    if (MDB::isError($result)) {
548
        $_MDB_databases[$database]->setError('FetchFloatResult', $result->getMessage());
549
        return(0);
550
    } else {
551
        return($result);
552
    }
553
}
554
 
555
function MetabaseFetchDecimalResult($database, $result, $row, $field)
556
{
557
    global $_MDB_databases;
558
    $result = $_MDB_databases[$database]->fetchDecimal($result, $row, $field);
559
    if (MDB::isError($result)) {
560
        $_MDB_databases[$database]->setError('FetchDecimalResult', $result->getMessage());
561
        return(0);
562
    } else {
563
        return($result);
564
    }
565
}
566
 
567
function MetabaseFetchResultField($database, $result, &$field)
568
{
569
    global $_MDB_databases;
570
    $result = $_MDB_databases[$database]->fetchOne($result);
571
    if (MDB::isError($result)) {
572
        $_MDB_databases[$database]->setError('FetchResultField', $result->getMessage());
573
        return(0);
574
    } else {
575
        $field = $result;
576
        return(1);
577
    }
578
}
579
 
580
function MetabaseFetchResultArray($database, $result, &$array, $row)
581
{
582
    global $_MDB_databases;
583
    $result = $_MDB_databases[$database]->fetchInto($result, MDB_FETCHMODE_ORDERED, $row);
584
    if (MDB::isError($result)) {
585
        $_MDB_databases[$database]->setError('FetchResultArray', $result->getMessage());
586
        return(0);
587
    } else {
588
        $array = $result;
589
        return(1);
590
    }
591
}
592
 
593
function MetabaseFetchResultRow($database, $result, &$row)
594
{
595
    global $_MDB_databases;
596
    $result = $_MDB_databases[$database]->fetchRow($result);
597
    if (MDB::isError($result)) {
598
        $_MDB_databases[$database]->setError('FetchResultRow', $result->getMessage());
599
        return(0);
600
    } else {
601
        $row = $result;
602
        return(1);
603
    }
604
}
605
 
606
function MetabaseFetchResultColumn($database, $result, &$column)
607
{
608
    global $_MDB_databases;
609
    $result = $_MDB_databases[$database]->fetchCol($result);
610
    if (MDB::isError($result)) {
611
        $_MDB_databases[$database]->setError('FetchResultColumn', $result->getMessage());
612
        return(0);
613
    } else {
614
        $column = $result;
615
        return(1);
616
    }
617
}
618
 
619
function MetabaseFetchResultAll($database, $result, &$all)
620
{
621
    global $_MDB_databases;
622
    $result = $_MDB_databases[$database]->fetchAll($result);
623
    if (MDB::isError($result)) {
624
        $_MDB_databases[$database]->setError('FetchResultAll', $result->getMessage());
625
        return(0);
626
    } else {
627
        $all = $result;
628
        return(1);
629
    }
630
}
631
 
632
function MetabaseNumberOfRows($database, $result)
633
{
634
    global $_MDB_databases;
635
    $result = $_MDB_databases[$database]->numRows($result);
636
    if (MDB::isError($result)) {
637
        $_MDB_databases[$database]->setError('NumberOfRows', $result->getMessage());
638
        return(0);
639
    } else {
640
       return($result);
641
    }
642
}
643
 
644
function MetabaseNumberOfColumns($database, $result)
645
{
646
    global $_MDB_databases;
647
    $result = $_MDB_databases[$database]->numCols($result);
648
    if (MDB::isError($result)) {
649
        $_MDB_databases[$database]->setError('NumberOfColumns', $result->getMessage());
650
        return(0);
651
    } else {
652
        return($result);
653
    }
654
}
655
 
656
function MetabaseGetColumnNames($database, $result, &$column_names)
657
{
658
    global $_MDB_databases;
659
    $result = $_MDB_databases[$database]->getColumnNames($result);
660
    if (MDB::isError($result)) {
661
        $_MDB_databases[$database]->setError('GetColumnNames', $result->getMessage());
662
        return(0);
663
    } else {
664
        $column_names = $result;
665
        return(1);
666
    }
667
}
668
 
669
function MetabaseSetResultTypes($database, $result, &$types)
670
{
671
    global $_MDB_databases;
672
    $result = $_MDB_databases[$database]->setResultTypes($result, $types);
673
    if (MDB::isError($result)) {
674
        $_MDB_databases[$database]->setError('SetResultTypes', $result->getMessage());
675
        return(0);
676
    } else {
677
        return(1);
678
    }
679
}
680
 
681
function MetabaseFreeResult($database, $result)
682
{
683
    global $_MDB_databases;
684
    $result = $_MDB_databases[$database]->freeResult($result);
685
    if (MDB::isError($result)) {
686
        $_MDB_databases[$database]->setError('FreeResult', $result->getMessage());
687
        return(0);
688
    } else {
689
        return(1);
690
    }
691
}
692
 
693
function MetabaseError($database)
694
{
695
    global $_MDB_databases;
696
    $result = $_MDB_databases[$database]->error();
697
    if (MDB::isError($result)) {
698
        $_MDB_databases[$database]->setError('Error', $result->getMessage());
699
        return(0);
700
    } else {
701
        return(1);
702
    }
703
}
704
 
705
function MetabaseSetErrorHandler($database, $function)
706
{
707
    global $_MDB_databases;
708
    $result = $_MDB_databases[$database]->setErrorHandler($function);
709
    if (MDB::isError($result)) {
710
        $_MDB_databases[$database]->setError('SetErrorHandler', $result->getMessage());
711
        return(0);
712
    } else {
713
        return(1);
714
    }
715
}
716
 
717
function MetabaseCreateDatabase($database, $name)
718
{
719
    global $_MDB_databases;
720
    $result = $_MDB_databases[$database]->createDatabase($name);
721
    if (MDB::isError($result)) {
722
        $_MDB_databases[$database]->setError('CreateDatabase', $result->getMessage());
723
        return(0);
724
    } else {
725
        return(1);
726
    }
727
}
728
 
729
function MetabaseDropDatabase($database, $name)
730
{
731
    global $_MDB_databases;
732
    $result = $_MDB_databases[$database]->dropDatabase($name);
733
    if (MDB::isError($result)) {
734
        $_MDB_databases[$database]->setError('DropDatabase', $result->getMessage());
735
        return(0);
736
    } else {
737
        return(1);
738
    }
739
}
740
 
741
function MetabaseSetDatabase($database, $name)
742
{
743
    global $_MDB_databases;
744
    $result = $_MDB_databases[$database]->setDatabase($name);
745
    if (MDB::isError($result)) {
746
        $_MDB_databases[$database]->setError('SetDatabase', $result->getMessage());
747
        return(0);
748
    } else {
749
        return($result);
750
    }
751
}
752
 
753
function MetabaseGetIntegerFieldTypeDeclaration($database, $name, &$field)
754
{
755
    global $_MDB_databases;
756
    $result = $_MDB_databases[$database]->getIntegerDeclaration($name, $field);
757
    if (MDB::isError($result)) {
758
        $_MDB_databases[$database]->setError('GetIntegerFieldTypeDeclaration', $result->getMessage());
759
        return(0);
760
    } else {
761
        return(1);
762
    }
763
}
764
 
765
function MetabaseGetTextFieldTypeDeclaration($database, $name, &$field)
766
{
767
    global $_MDB_databases;
768
    $result = $_MDB_databases[$database]->getTextDeclaration($name, $field);
769
    if (MDB::isError($result)) {
770
        $_MDB_databases[$database]->setError('GetTextFieldTypeDeclaration', $result->getMessage());
771
        return(0);
772
    } else {
773
        return(1);
774
    }
775
}
776
 
777
function MetabaseGetCLOBFieldTypeDeclaration($database, $name, &$field)
778
{
779
    global $_MDB_databases;
780
    $result = $_MDB_databases[$database]->getClobDeclaration($name, $field);
781
    if (MDB::isError($result)) {
782
        $_MDB_databases[$database]->setError('GetCLOBFieldTypeDeclaration', $result->getMessage());
783
        return(0);
784
    } else {
785
        return(1);
786
    }
787
}
788
 
789
function MetabaseGetBLOBFieldTypeDeclaration($database, $name, &$field)
790
{
791
    global $_MDB_databases;
792
    $result = $_MDB_databases[$database]->getBlobDeclaration($name, $field);
793
    if (MDB::isError($result)) {
794
        $_MDB_databases[$database]->setError('GetBLOBFieldTypeDeclaration', $result->getMessage());
795
        return(0);
796
    } else {
797
        return(1);
798
    }
799
}
800
 
801
function MetabaseGetBooleanFieldTypeDeclaration($database, $name, &$field)
802
{
803
    global $_MDB_databases;
804
    $result = $_MDB_databases[$database]->getBooleanDeclaration($name, $field);
805
    if (MDB::isError($result)) {
806
        $_MDB_databases[$database]->setError('GetBooleanFieldTypeDeclaration', $result->getMessage());
807
        return(0);
808
    } else {
809
        return(1);
810
    }
811
}
812
 
813
function MetabaseGetDateFieldTypeDeclaration($database, $name, &$field)
814
{
815
    global $_MDB_databases;
816
    $result = $_MDB_databases[$database]->getDateDeclaration($name, $field);
817
    if (MDB::isError($result)) {
818
        $_MDB_databases[$database]->setError('GetDateFieldTypeDeclaration', $result->getMessage());
819
        return(0);
820
    } else {
821
        return(1);
822
    }
823
}
824
 
825
function MetabaseGetTimestampFieldTypeDeclaration($database, $name, &$field)
826
{
827
    global $_MDB_databases;
828
    $result = $_MDB_databases[$database]->getTimestampDeclaration($name, $field);
829
    if (MDB::isError($result)) {
830
        $_MDB_databases[$database]->setError('GetTimestampFieldTypeDeclaration', $result->getMessage());
831
        return(0);
832
    } else {
833
        return(1);
834
    }
835
}
836
 
837
function MetabaseGetTimeFieldTypeDeclaration($database, $name, &$field)
838
{
839
    global $_MDB_databases;
840
    $result = $_MDB_databases[$database]->getTimeDeclaration($name, $field);
841
    if (MDB::isError($result)) {
842
        $_MDB_databases[$database]->setError('GetTimeFieldTypeDeclaration', $result->getMessage());
843
        return(0);
844
    } else {
845
        return(1);
846
    }
847
}
848
 
849
function MetabaseGetFloatFieldTypeDeclaration($database, $name, &$field)
850
{
851
    global $_MDB_databases;
852
    $result = $_MDB_databases[$database]->getFloatDeclaration($name, $field);
853
    if (MDB::isError($result)) {
854
        $_MDB_databases[$database]->setError('GetFloatFieldTypeDeclaration', $result->getMessage());
855
        return(0);
856
    } else {
857
        return(1);
858
    }
859
}
860
 
861
function MetabaseGetDecimalFieldTypeDeclaration($database, $name, &$field)
862
{
863
    global $_MDB_databases;
864
    $result = $_MDB_databases[$database]->getDecimalDeclaration($name, $field);
865
    if (MDB::isError($result)) {
866
        $_MDB_databases[$database]->setError('GetDecimalFieldTypeDeclaration', $result->getMessage());
867
        return(0);
868
    } else {
869
        return(1);
870
    }
871
}
872
 
873
function MetabaseGetTextFieldValue($database, $value)
874
{
875
    global $_MDB_databases;
876
    $result = $_MDB_databases[$database]->getTextValue($value);
877
    if (MDB::isError($result)) {
878
        $_MDB_databases[$database]->setError('GetTextFieldValue', $result->getMessage());
879
        return(0);
880
    } else {
881
        return($result);
882
    }
883
}
884
 
885
function MetabaseGetBooleanFieldValue($database, $value)
886
{
887
    global $_MDB_databases;
888
    $result = $_MDB_databases[$database]->getBooleanValue($value);
889
    if (MDB::isError($result)) {
890
        $_MDB_databases[$database]->setError('GetBooleanFieldValue', $result->getMessage());
891
        return(0);
892
    } else {
893
        return($result);
894
    }
895
}
896
 
897
function MetabaseGetDateFieldValue($database, $value)
898
{
899
    global $_MDB_databases;
900
    $result = $_MDB_databases[$database]->getDateValue($value);
901
    if (MDB::isError($result)) {
902
        $_MDB_databases[$database]->setError('GetDateFieldValue', $result->getMessage());
903
        return(0);
904
    } else {
905
        return($result);
906
    }
907
}
908
 
909
function MetabaseGetTimestampFieldValue($database, $value)
910
{
911
    global $_MDB_databases;
912
    $result = $_MDB_databases[$database]->getTimestampValue($value);
913
    if (MDB::isError($result)) {
914
        $_MDB_databases[$database]->setError('GetTimestampFieldValue', $result->getMessage());
915
        return(0);
916
    } else {
917
        return($result);
918
    }
919
}
920
 
921
function MetabaseGetTimeFieldValue($database, $value)
922
{
923
    global $_MDB_databases;
924
    $result = $_MDB_databases[$database]->getTimeValue($value);
925
    if (MDB::isError($result)) {
926
        $_MDB_databases[$database]->setError('GetTimeFieldValue', $result->getMessage());
927
        return(0);
928
    } else {
929
        return($result);
930
    }
931
}
932
 
933
function MetabaseGetFloatFieldValue($database, $value)
934
{
935
    global $_MDB_databases;
936
    $result = $_MDB_databases[$database]->getFloatValue($value);
937
    if (MDB::isError($result)) {
938
        $_MDB_databases[$database]->setError('GetFloatFieldValue', $result->getMessage());
939
        return(0);
940
    } else {
941
        return($result);
942
    }
943
}
944
 
945
function MetabaseGetDecimalFieldValue($database, $value)
946
{
947
    global $_MDB_databases;
948
    $result = $_MDB_databases[$database]->getDecimalValue($value);
949
    if (MDB::isError($result)) {
950
        $_MDB_databases[$database]->setError('GetDecimalFieldValue', $result->getMessage());
951
        return(0);
952
    } else {
953
        return($result);
954
    }
955
}
956
 
957
function MetabaseSupport($database, $feature)
958
{
959
    global $_MDB_databases;
960
    $result = $_MDB_databases[$database]->support($feature);
961
    if (MDB::isError($result)) {
962
        $_MDB_databases[$database]->setError('Support', $result->getMessage());
963
        return(0);
964
    } else {
965
       return($result);
966
    }
967
}
968
 
969
function MetabaseCreateTable($database, $name, &$fields)
970
{
971
    global $_MDB_databases;
972
    $result = $_MDB_databases[$database]->createTable($name, $fields);
973
    if (MDB::isError($result)) {
974
        $_MDB_databases[$database]->setError('CreateTable', $result->getMessage());
975
        return(0);
976
    } else {
977
        return(1);
978
    }
979
}
980
 
981
function MetabaseDropTable($database, $name)
982
{
983
    global $_MDB_databases;
984
    $result = $_MDB_databases[$database]->dropTable($name);
985
    if (MDB::isError($result)) {
986
        $_MDB_databases[$database]->setError('DropTable', $result->getMessage());
987
        return(0);
988
    } else {
989
        return(1);
990
    }
991
}
992
 
993
function MetabaseAlterTable($database, $name, &$changes, $check = 0)
994
{
995
    global $_MDB_databases;
996
    $result = $_MDB_databases[$database]->alterTable($name, $changes, $check);
997
    if (MDB::isError($result)) {
998
        $_MDB_databases[$database]->setError('AlterTable', $result->getMessage());
999
        return(0);
1000
    } else {
1001
        return(1);
1002
    }
1003
}
1004
 
1005
function MetabaseListTables($database, &$tables)
1006
{
1007
    global $_MDB_databases;
1008
    $result = $_MDB_databases[$database]->listTables();
1009
    if (MDB::isError($result)) {
1010
        $_MDB_databases[$database]->setError('ListTables', $result->getMessage());
1011
        return(0);
1012
    } else {
1013
        $tables = $result;
1014
        return(1);
1015
    }
1016
}
1017
 
1018
function MetabaseListTableFields($database, $table, &$fields)
1019
{
1020
    global $_MDB_databases;
1021
    $result = $_MDB_databases[$database]->listTableFields($table);
1022
    if (MDB::isError($result)) {
1023
        $_MDB_databases[$database]->setError('ListTableFields', $result->getMessage());
1024
        return(0);
1025
    } else {
1026
        $fields = $result;
1027
        return(1);
1028
    }
1029
}
1030
 
1031
function MetabaseGetTableFieldDefinition($database, $table, $field, &$definition)
1032
{
1033
    global $_MDB_databases;
1034
    $result = $_MDB_databases[$database]->getTableFieldDefinition($table, $field);
1035
    if (MDB::isError($result)) {
1036
        $_MDB_databases[$database]->setError('GetTableFieldDefinition', $result->getMessage());
1037
        return(0);
1038
    } else {
1039
        $definition = $result[0];
1040
        return(1);
1041
    }
1042
}
1043
 
1044
function MetabaseCreateSequence($database, $name, $start)
1045
{
1046
    global $_MDB_databases;
1047
    $result = $_MDB_databases[$database]->createSequence($name, $start);
1048
    if (MDB::isError($result)) {
1049
        $_MDB_databases[$database]->setError('CreateSequence', $result->getMessage());
1050
        return(0);
1051
    } else {
1052
        return(1);
1053
    }
1054
}
1055
 
1056
function MetabaseDropSequence($database, $name)
1057
{
1058
    global $_MDB_databases;
1059
    $result = $_MDB_databases[$database]->dropSequence($name);
1060
    if (MDB::isError($result)) {
1061
        $_MDB_databases[$database]->setError('DropSequence', $result->getMessage());
1062
        return(0);
1063
    } else {
1064
        return(1);
1065
    }
1066
}
1067
 
1068
function MetabaseGetSequenceNextValue($database, $name, &$value)
1069
{
1070
    global $_MDB_databases;
1071
    $result = $_MDB_databases[$database]->nextId($name, FALSE);
1072
    if (MDB::isError($result)) {
1073
        $_MDB_databases[$database]->setError('GetSequenceNextValue', $result->getMessage());
1074
        return(0);
1075
    } else {
1076
        $value = $result;
1077
        return(1);
1078
    }
1079
}
1080
 
1081
function MetabaseGetSequenceCurrentValue($database, $name, &$value)
1082
{
1083
    global $_MDB_databases;
1084
    $result = $_MDB_databases[$database]->currId($name);
1085
    if (MDB::isError($result)) {
1086
        $_MDB_databases[$database]->setError('GetSequenceCurrentValue', $result->getMessage());
1087
        return(0);
1088
    } else {
1089
        $value = $result;
1090
        return(1);
1091
    }
1092
}
1093
 
1094
function MetabaseListSequences($database, &$sequences)
1095
{
1096
    global $_MDB_databases;
1097
    $result = $_MDB_databases[$database]->listSequences();
1098
    if (MDB::isError($result)) {
1099
        $_MDB_databases[$database]->setError('ListSequences', $result->getMessage());
1100
        return(0);
1101
    } else {
1102
        $sequences = $result;
1103
        return(1);
1104
    }
1105
}
1106
 
1107
function MetabaseGetSequenceDefinition($database, $sequence, &$definition)
1108
{
1109
    global $_MDB_databases;
1110
    $result = $_MDB_databases[$database]->getSequenceDefinition($sequence);
1111
    if (MDB::isError($result)) {
1112
        $_MDB_databases[$database]->setError('GetSequenceDefinition', $result->getMessage());
1113
        return(0);
1114
    } else {
1115
        $definition = $result;
1116
        return(1);
1117
    }
1118
}
1119
 
1120
function MetabaseAutoCommitTransactions($database, $auto_commit)
1121
{
1122
    global $_MDB_databases;
1123
    $result = $_MDB_databases[$database]->autoCommit($auto_commit);
1124
    if (MDB::isError($result)) {
1125
        $_MDB_databases[$database]->setError('AutoCommitTransactions', $result->getMessage());
1126
        return(0);
1127
    } else {
1128
        return(1);
1129
    }
1130
}
1131
 
1132
function MetabaseCommitTransaction($database)
1133
{
1134
    global $_MDB_databases;
1135
    $result = $_MDB_databases[$database]->commit();
1136
    if (MDB::isError($result)) {
1137
        $_MDB_databases[$database]->setError('CommitTransaction', $result->getMessage());
1138
        return(0);
1139
    } else {
1140
        return(1);
1141
    }
1142
}
1143
 
1144
function MetabaseRollbackTransaction($database)
1145
{
1146
    global $_MDB_databases;
1147
    $result = $_MDB_databases[$database]->rollback();
1148
    if (MDB::isError($result)) {
1149
        $_MDB_databases[$database]->setError('RollbackTransaction', $result->getMessage());
1150
        return(0);
1151
    } else {
1152
        return($result);
1153
    }
1154
}
1155
 
1156
function MetabaseCreateIndex($database, $table, $name, $definition)
1157
{
1158
    global $_MDB_databases;
1159
    $result = $_MDB_databases[$database]->createIndex($table, $name, $definition);
1160
    if (MDB::isError($result)) {
1161
        $_MDB_databases[$database]->setError('CreateIndex', $result->getMessage());
1162
        return(0);
1163
    } else {
1164
        return(1);
1165
    }
1166
}
1167
 
1168
function MetabaseDropIndex($database, $table, $name)
1169
{
1170
    global $_MDB_databases;
1171
    $result = $_MDB_databases[$database]->dropIndex($table, $name);
1172
    if (MDB::isError($result)) {
1173
        $_MDB_databases[$database]->setError('DropIndex', $result->getMessage());
1174
        return(0);
1175
    } else {
1176
        return(1);
1177
    }
1178
}
1179
 
1180
function MetabaseListTableIndex($database, $table, &$index)
1181
{
1182
    global $_MDB_databases;
1183
    $result = $_MDB_databases[$database]->listTableIndex($table);
1184
    if (MDB::isError($result)) {
1185
        $_MDB_databases[$database]->setError('ListTableIndex', $result->getMessage());
1186
        return(0);
1187
    } else {
1188
        $index = $result;
1189
        return(1);
1190
    }
1191
}
1192
 
1193
function MetabaseGetTableIndexDefinition($database, $table, $index, &$definition)
1194
{
1195
    global $_MDB_databases;
1196
    $result = $_MDB_databases[$database]->getTableIndexDefinition($table, $index);
1197
    if (MDB::isError($result)) {
1198
        $_MDB_databases[$database]->setError('GetTableIndexDefinition', $result->getMessage());
1199
        return(0);
1200
    } else {
1201
        $definition = $result;
1202
        return(1);
1203
    }
1204
}
1205
 
1206
function MetabaseNow()
1207
{
1208
    return(MDB_Date::mdbNow());
1209
}
1210
 
1211
function MetabaseToday()
1212
{
1213
    return(MDB_Date::mdbToday());
1214
}
1215
 
1216
function MetabaseTime()
1217
{
1218
    return(MDB_Date::mdbTime());
1219
}
1220
 
1221
function MetabaseSetSelectedRowRange($database, $first, $limit)
1222
{
1223
    global $_MDB_databases;
1224
    $result = $_MDB_databases[$database]->setSelectedRowRange($first, $limit);
1225
    if (MDB::isError($result)) {
1226
        $_MDB_databases[$database]->setError('SetSelectedRowRange', $result->getMessage());
1227
        return(0);
1228
    } else {
1229
        return(1);
1230
    }
1231
}
1232
 
1233
function MetabaseEndOfResult($database, $result)
1234
{
1235
    global $_MDB_databases;
1236
    $result = $_MDB_databases[$database]->endOfResult($result);
1237
    if (MDB::isError($result)) {
1238
        $_MDB_databases[$database]->setError('EndOfResult', $result->getMessage());
1239
        return(0);
1240
    } else {
1241
       return($result);
1242
    }
1243
}
1244
 
1245
function MetabaseCaptureDebugOutput($database, $capture)
1246
{
1247
    global $_MDB_databases;
1248
    $result = $_MDB_databases[$database]->captureDebugOutput($capture);
1249
    if (MDB::isError($result)) {
1250
        $_MDB_databases[$database]->setError('CaptureDebugOutput', $result->getMessage());
1251
        return(0);
1252
    } else {
1253
        return(1);
1254
    }
1255
}
1256
 
1257
function MetabaseDebugOutput($database)
1258
{
1259
    global $_MDB_databases;
1260
    $result = $_MDB_databases[$database]->debugOutput();
1261
    if (MDB::isError($result)) {
1262
        $_MDB_databases[$database]->setError('DebugOutput', $result->getMessage());
1263
        return(0);
1264
    } else {
1265
        return($result);
1266
    }
1267
}
1268
 
1269
function MetabaseDebug($database, $message)
1270
{
1271
    global $_MDB_databases;
1272
    $result = $_MDB_databases[$database]->debug($message);
1273
    if (MDB::isError($result)) {
1274
        $_MDB_databases[$database]->setError('Debug', $result->getMessage());
1275
        return(0);
1276
    } else {
1277
        return(1);
1278
    }
1279
}
1280
 
1281
function MetabaseShutdownTransactions()
1282
{
1283
    _shutdownTransactions();
1284
}
1285
 
1286
function MetabaseDefaultDebugOutput($database, $message)
1287
{
1288
    global $_MDB_databases;
1289
    $result = $_MDB_databases[$database]->defaultDebugOutput($_MDB_databases[$database], $message);
1290
    if (MDB::isError($result)) {
1291
        $_MDB_databases[$database]->setError('DefaultDebugOutput', $result->getMessage());
1292
        return(0);
1293
    } else {
1294
        return(1);
1295
    }
1296
}
1297
 
1298
function MetabaseCreateLOB(&$arguments, &$lob)
1299
{
1300
    global $_MDB_databases;
1301
    $args = $arguments;
1302
    $args['Database'] = $_MDB_databases[$arguments['Database']];
1303
    $result = $_MDB_databases[$arguments['Database']]->createLob($args);
1304
    $args['Database'] = $arguments['Database']
1305
    ;
1306
    if (MDB::isError($result)) {
1307
        global $lob_error;
1308
        $lob_error = $result->getMessage();
1309
        return(0);
1310
    } else {
1311
        $lob = $result;
1312
        return(1);
1313
    }
1314
}
1315
 
1316
function MetabaseDestroyLOB($lob)
1317
{
1318
    global $_MDB_lobs;
1319
    $result = $_MDB_lobs[$lob]->database->destroyLob($lob);
1320
    if (MDB::isError($result)) {
1321
        global $lob_error;
1322
        $lob_error = $result->getMessage();
1323
        return(0);
1324
    } else {
1325
        return(1);
1326
    }
1327
}
1328
 
1329
function MetabaseEndOfLOB($lob)
1330
{
1331
    global $_MDB_lobs;
1332
    $result = $_MDB_lobs[$lob]->database->endOfLob($lob);
1333
    if (MDB::isError($result)) {
1334
        global $lob_error;
1335
        $lob_error = $result->getMessage();
1336
        return(0);
1337
    } else {
1338
        return($result);
1339
    }
1340
}
1341
 
1342
function MetabaseReadLOB($lob, &$data, $length)
1343
{
1344
    global $_MDB_lobs;
1345
    $result = $_MDB_lobs[$lob]->database->readLob($lob, $data, $length);
1346
    if (MDB::isError($result)) {
1347
        global $lob_error;
1348
        $lob_error = $result->getMessage();
1349
        return(0);
1350
    } else {
1351
        return($result);
1352
    }
1353
}
1354
 
1355
function MetabaseLOBError($lob)
1356
{
1357
    global $lob_error;
1358
    return($lob_error);
1359
}
1360
 
1361
class metabase_manager_class
1362
{
1363
    var $MDB_manager_object;
1364
 
1365
    var $fail_on_invalid_names = 1;
1366
    var $error = '';
1367
    var $warnings = array();
1368
    var $database = 0;
1369
    var $database_definition = array(
1370
        'name' => '',
1371
        'create' => 0,
1372
        'TABLES' => array()
1373
    );
1374
 
1375
    function metabase_manager_class()
1376
    {
1377
        $this->MDB_manager_object =& new MDB_Manager;
1378
        $this->MDB_manager_object->fail_on_invalid_names =& $this->fail_on_invalid_names;
1379
        $this->MDB_manager_object->error =& $this->error;
1380
        $this->MDB_manager_object->warnings =& $this->warnings;
1381
        $this->MDB_manager_object->database_definition =& $this->database_definition;
1382
    }
1383
 
1384
    function SetupDatabase(&$arguments)
1385
    {
1386
        _convertArguments($arguments, $dsninfo, $options);
1387
 
1388
        $result = $this->MDB_manager_object->connect($dsninfo, $options);
1389
        if (MDB::isError($result)) {
1390
            return($result->getMessage());
1391
        }
1392
        $this->database = $this->MDB_manager_object->database->database;
1393
        return(1);
1394
    }
1395
 
1396
    function CloseSetup()
1397
    {
1398
        $result = $this->MDB_manager_object->disconnect();
1399
        if (MDB::isError($result)) {
1400
            return(0);
1401
        } else {
1402
            return(1);
1403
        }
1404
    }
1405
 
1406
    function GetField(&$field, $field_name, $declaration, &$query)
1407
    {
1408
        if($declaration) {
1409
            $result = $this->MDB_manager_object->database->getFieldDeclaration($field, $field_name, $declaration);
1410
        } else {
1411
            $result = $field_name;
1412
        }
1413
        if (MDB::isError($result)) {
1414
            return(0);
1415
        } else {
1416
            $query = $result;
1417
            return(1);
1418
        }
1419
    }
1420
 
1421
    function GetFieldList($fields, $declaration, &$query_fields)
1422
    {
1423
        if($declaration) {
1424
            $result = $this->MDB_manager_object->database->getFieldDeclarationList($fields);
1425
        } else {
1426
            for(reset($fields), $i = 0;
1427
                $field_number < count($fields);
1428
                $i++, next($fields))
1429
            {
1430
                if ($i > 0) {
1431
                    $query_fields .= ', ';
1432
                }
1433
                $result .= key($fields);
1434
            }
1435
        }
1436
        if (MDB::isError($result)) {
1437
            return(0);
1438
        } else {
1439
            $query_fields = $result;
1440
            return(1);
1441
        }
1442
    }
1443
 
1444
    function GetFields($table, &$fields)
1445
    {
1446
        $result = $this->MDB_manager_object->database->getFieldDeclarationList($this->database_definition['TABLES'][$table]['FIELDS']);
1447
        if (MDB::isError($result)) {
1448
            return(0);
1449
        } else {
1450
            $fields = $result;
1451
            return(1);
1452
        }
1453
    }
1454
 
1455
    function CreateTable($table_name, $table)
1456
    {
1457
        $result = $this->MDB_manager_object->_createTable($table_name, $table);
1458
        if (MDB::isError($result)) {
1459
            return(0);
1460
        } else {
1461
            return(1);
1462
        }
1463
    }
1464
 
1465
    function DropTable($table_name)
1466
    {
1467
        $result = $this->MDB_manager_object->_dropTable($table_name);
1468
        if (MDB::isError($result)) {
1469
            return(0);
1470
        } else {
1471
            return(1);
1472
        }
1473
    }
1474
 
1475
    function CreateSequence($sequence_name, $sequence, $created_on_table)
1476
    {
1477
        $result = $this->MDB_manager_object->createSequence($sequence_name, $sequence, $created_on_table);
1478
        if (MDB::isError($result)) {
1479
            return(0);
1480
        } else {
1481
            return(1);
1482
        }
1483
    }
1484
 
1485
    function DropSequence($sequence_name)
1486
    {
1487
        $result = $this->MDB_manager_object->_dropSequence($sequence_name);
1488
        if (MDB::isError($result)) {
1489
            return(0);
1490
        } else {
1491
            return(1);
1492
        }
1493
    }
1494
 
1495
    function CreateDatabase()
1496
    {
1497
        $result = $this->MDB_manager_object->_createDatabase();
1498
        if (MDB::isError($result)) {
1499
            return(0);
1500
        } else {
1501
            return(1);
1502
        }
1503
    }
1504
 
1505
    function AddDefinitionChange(&$changes, $definition, $item, $change)
1506
    {
1507
        $result = $this->MDB_manager_object->_addDefinitionChange($changes, $definition, $item, $change);
1508
        if (MDB::isError($result)) {
1509
            return(0);
1510
        } else {
1511
            return(1);
1512
        }
1513
    }
1514
 
1515
    function CompareDefinitions(&$previous_definition, &$changes)
1516
    {
1517
        $result = $this->MDB_manager_object->_compareDefinitions($previous_definition);
1518
        if (MDB::isError($result)) {
1519
            return(0);
1520
        } else {
1521
            $changes = $result;
1522
            return(1);
1523
        }
1524
    }
1525
 
1526
    function AlterDatabase(&$previous_definition, &$changes)
1527
    {
1528
        $result = $this->MDB_manager_object->_alterDatabase($previous_definition, $changes);
1529
        if (MDB::isError($result)) {
1530
            return(0);
1531
        } else {
1532
            return(1);
1533
        }
1534
    }
1535
 
1536
    function EscapeSpecialCharacters($string)
1537
    {
1538
        $result = $this->MDB_manager_object->_escapeSpecialCharacters($string);
1539
        if (MDB::isError($result)) {
1540
            return(0);
1541
        } else {
1542
            return($result);
1543
        }
1544
    }
1545
 
1546
    function DumpSequence($sequence_name, $output, $eol, $dump_definition)
1547
    {
1548
        $result = $this->MDB_manager_object->_dumpSequence($sequence_name, $output, $eol, $dump_definition);
1549
        if (MDB::isError($result)) {
1550
            return(0);
1551
        } else {
1552
            return(1);
1553
        }
1554
    }
1555
 
1556
    function DumpDatabase($arguments)
1557
    {
1558
        $result = $this->MDB_manager_object->dumpDatabase($arguments);
1559
        if (MDB::isError($result)) {
1560
            return(0);
1561
        } else {
1562
            return(1);
1563
        }
1564
    }
1565
 
1566
    function ParseDatabaseDefinitionFile($input_file, &$database_definition, &$variables, $fail_on_invalid_names = 1)
1567
    {
1568
        $result = $this->MDB_manager_object->parseDatabaseDefinitionFile($input_file, $variables, $fail_on_invalid_names);
1569
        if (MDB::isError($result)) {
1570
            return(0);
1571
        } else {
1572
            $database_definition = $result;
1573
            return(1);
1574
        }
1575
    }
1576
 
1577
    function DumpDatabaseChanges(&$changes)
1578
    {
1579
        $result = $this->MDB_manager_object->_debugDatabaseChanges($changes);
1580
        if (MDB::isError($result)) {
1581
            return(0);
1582
        } else {
1583
            return(1);
1584
        }
1585
    }
1586
 
1587
    function UpdateDatabase($current_schema_file, $previous_schema_file, &$arguments, &$variables)
1588
    {
1589
        _convertArguments($arguments, $dsninfo, $options);
1590
 
1591
        $result = $this->MDB_manager_object->connect($dsninfo, $options);
1592
        if (MDB::isError($result)) {
1593
            return($result);
1594
        }
1595
 
1596
        $result = $this->MDB_manager_object->updateDatabase($current_schema_file, $previous_schema_file, $variables);
1597
        if (MDB::isError($result)) {
1598
            return($result->getMessage());
1599
        }
1600
        $this->database = $this->MDB_manager_object->database->database;
1601
        return(1);
1602
    }
1603
 
1604
    function DumpDatabaseContents($schema_file, &$setup_arguments, &$dump_arguments, &$variables)
1605
    {
1606
        $result = $this->MDB_manager_object->_dumpDatabaseContents($schema_file, $setup_arguments, $dump_arguments, $variables);
1607
        if (MDB::isError($result)) {
1608
            return(0);
1609
        } else {
1610
            $database_definition = $result;
1611
            return($result);
1612
        }
1613
    }
1614
 
1615
    function GetDefinitionFromDatabase()
1616
    {
1617
        $result = $this->MDB_manager_object->getDefinitionFromDatabase();
1618
        if (MDB::isError($result)) {
1619
            return(0);
1620
        } else {
1621
            return(1);
1622
        }
1623
    }
1624
};
1625
?>