blob: 49b63b7d04f98a89c72d3f5b5fa8d00b7473fc0e [file] [log] [blame]
admin7b613c72006-09-24 18:05:17 +00001<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
2/**
3 * Code Igniter
4 *
5 * An open source application development framework for PHP 4.3.2 or newer
6 *
7 * @package CodeIgniter
8 * @author Rick Ellis
9 * @copyright Copyright (c) 2006, pMachine, Inc.
10 * @license http://www.codeignitor.com/user_guide/license.html
11 * @link http://www.codeigniter.com
12 * @since Version 1.0
13 * @filesource
14 */
15
16// ------------------------------------------------------------------------
17
18/**
19 * MS SQL Utility Class
20 *
21 * @category Database
22 * @author Rick Ellis
23 * @link http://www.codeigniter.com/user_guide/database/
24 */
admina5e812c2006-09-25 02:17:30 +000025class CI_DB_mssql_utility extends CI_DB_utility {
26
admin6ca6f942006-09-25 02:51:08 +000027
28 /**
29 * Create database
30 *
admin6cec6a52006-09-25 06:56:49 +000031 * @access private
admin6ca6f942006-09-25 02:51:08 +000032 * @param string the database name
33 * @return bool
34 */
admin6cec6a52006-09-25 06:56:49 +000035 function _create_database($name)
admin6ca6f942006-09-25 02:51:08 +000036 {
admin6cec6a52006-09-25 06:56:49 +000037 return "CREATE DATABASE ".$name;
admin6ca6f942006-09-25 02:51:08 +000038 }
39
40 // --------------------------------------------------------------------
41
42 /**
43 * Drop database
44 *
45 * @access public
46 * @param string the database name
47 * @return bool
48 */
49 function drop_database($name)
50 {
admin4ceac2d2006-09-25 06:40:16 +000051 return $this->db->query("DROP DATABASE ".$name);
admin6ca6f942006-09-25 02:51:08 +000052 }
53
54 // --------------------------------------------------------------------
admin72496372006-09-25 03:44:04 +000055
56 /**
57 * List databases
58 *
59 * @access public
60 * @return bool
61 */
62 function list_databases()
63 {
64 $query = $this->db->query("EXEC sp_helpdb"); // Can also be: EXEC sp_databases
65 $dbs = array();
66 if ($query->num_rows() > 0)
67 {
68 foreach ($query->result_array() as $row)
69 {
70 $dbs[] = current($row);
71 }
72 }
73
74 return $dbs;
75 }
76
77 // --------------------------------------------------------------------
admin4ceac2d2006-09-25 06:40:16 +000078
79 /**
80 * Drop Table
81 *
82 * @access public
83 * @return bool
84 */
85 function drop_table($table)
86 {
admin6cec6a52006-09-25 06:56:49 +000087 return $this->db->query("DROP TABLE ".$this->db->_escape_table($name));
admin4ceac2d2006-09-25 06:40:16 +000088 }
89
90 // --------------------------------------------------------------------
admin7b613c72006-09-24 18:05:17 +000091
92 /**
admina5e812c2006-09-25 02:17:30 +000093 * Version number query string
admin7b613c72006-09-24 18:05:17 +000094 *
95 * @access public
admina5e812c2006-09-25 02:17:30 +000096 * @return string
admin7b613c72006-09-24 18:05:17 +000097 */
admina5e812c2006-09-25 02:17:30 +000098 function _version()
admin7b613c72006-09-24 18:05:17 +000099 {
admina5e812c2006-09-25 02:17:30 +0000100 return "SELECT version() AS ver";
admin7b613c72006-09-24 18:05:17 +0000101 }
102
103 // --------------------------------------------------------------------
104
admina5e812c2006-09-25 02:17:30 +0000105 /**
106 * Show table query
107 *
108 * Generates a platform-specific query string so that the table names can be fetched
109 *
110 * @access public
111 * @return string
112 */
113 function _show_tables()
114 {
115 return "SELECT name FROM sysobjects WHERE type = 'U' ORDER BY name";
116 }
117
118 // --------------------------------------------------------------------
119
120 /**
121 * Show columnn query
122 *
123 * Generates a platform-specific query string so that the column names can be fetched
124 *
125 * @access public
126 * @param string the table name
127 * @return string
128 */
129 function _show_columns($table = '')
130 {
131 return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$this->db->_escape_table($table)."'";
132 }
133
134 // --------------------------------------------------------------------
135
136 /**
137 * Field data query
138 *
139 * Generates a platform-specific query so that the column data can be retrieved
140 *
141 * @access public
142 * @param string the table name
143 * @return object
144 */
145 function _field_data($table)
146 {
admin6cec6a52006-09-25 06:56:49 +0000147 return "SELECT TOP 1 FROM ".$this->db->_escape_table($table);
admina5e812c2006-09-25 02:17:30 +0000148 }
149
150
151
admin7b613c72006-09-24 18:05:17 +0000152}
153
154?>