]> CyberLeo.Net >> Repos - SourceForge/phpwiki.git/blob - lib/WikiDB/adodb/drivers/adodb-vfp.inc.php
Reformat code
[SourceForge/phpwiki.git] / lib / WikiDB / adodb / drivers / adodb-vfp.inc.php
1 <?php
2 /*
3 V4.22 15 Apr 2004  (c) 2000-2004 John Lim (jlim@natsoft.com.my). All rights reserved.
4   Released under both BSD license and Lesser GPL library license.
5   Whenever there is any discrepancy between the two licenses,
6   the BSD license will take precedence.
7 Set tabs to 4 for best viewing.
8
9   Latest version is available at http://php.weblogs.com/
10
11   Microsoft Visual FoxPro data driver. Requires ODBC. Works only on MS Windows.
12 */
13
14 if (!defined('_ADODB_ODBC_LAYER')) {
15     include(ADODB_DIR . "/drivers/adodb-odbc.inc.php");
16 }
17 if (!defined('ADODB_VFP')) {
18     define('ADODB_VFP', 1);
19     class ADODB_vfp extends ADODB_odbc
20     {
21         var $databaseType = "vfp";
22         var $fmtDate = "{^Y-m-d}";
23         var $fmtTimeStamp = "{^Y-m-d, h:i:sA}";
24         var $replaceQuote = "'+chr(39)+'";
25         var $true = '.T.';
26         var $false = '.F.';
27         var $hasTop = 'top'; // support mssql SELECT TOP 10 * FROM TABLE
28         var $upperCase = 'upper';
29         var $_bindInputArray = false; // strangely enough, setting to true does not work reliably
30         var $sysTimeStamp = 'datetime()';
31         var $sysDate = 'date()';
32         var $ansiOuter = true;
33         var $hasTransactions = false;
34         var $curmode = SQL_CUR_USE_ODBC; // See sqlext.h, SQL_CUR_DEFAULT == SQL_CUR_USE_DRIVER == 2L
35
36         function ADODB_vfp()
37         {
38             $this->ADODB_odbc();
39         }
40
41         function Time()
42         {
43             return time();
44         }
45
46         function BeginTrans()
47         {
48             return false;
49         }
50
51         // quote string to be sent back to database
52         function qstr($s, $nofixquotes = false)
53         {
54             if (!$nofixquotes) return "'" . str_replace("\r\n", "'+chr(13)+'", str_replace("'", $this->replaceQuote, $s)) . "'";
55             return "'" . $s . "'";
56         }
57
58         // TOP requires ORDER BY for VFP
59         function &SelectLimit($sql, $nrows = -1, $offset = -1, $inputarr = false, $secs2cache = 0)
60         {
61             $this->hasTop = preg_match('/ORDER[ \t\r\n]+BY/is', $sql) ? 'top' : false;
62             return ADOConnection::SelectLimit($sql, $nrows, $offset, $inputarr, $secs2cache);
63         }
64
65     }
66
67     ;
68
69     class  ADORecordSet_vfp extends ADORecordSet_odbc
70     {
71
72         var $databaseType = "vfp";
73
74         function ADORecordSet_vfp($id, $mode = false)
75         {
76             return $this->ADORecordSet_odbc($id, $mode);
77         }
78
79         function MetaType($t, $len = -1)
80         {
81             if (is_object($t)) {
82                 $fieldobj = $t;
83                 $t = $fieldobj->type;
84                 $len = $fieldobj->max_length;
85             }
86             switch (strtoupper($t)) {
87                 case 'C':
88                     if ($len <= $this->blobSize) return 'C';
89                 case 'M':
90                     return 'X';
91
92                 case 'D':
93                     return 'D';
94
95                 case 'T':
96                     return 'T';
97
98                 case 'L':
99                     return 'L';
100
101                 case 'I':
102                     return 'I';
103
104                 default:
105                     return 'N';
106             }
107         }
108     }
109
110 } //define