181 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			181 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!DOCTYPE html>
 | |
| <html><head>
 | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 | |
| <link href="../sqlite.css" rel="stylesheet">
 | |
| <title>Extract Metadata About A Column Of A Table</title>
 | |
| <!-- path=../ -->
 | |
| </head>
 | |
| <body>
 | |
| <div class=nosearch>
 | |
| <a href="../index.html">
 | |
| <img class="logo" src="../images/sqlite370_banner.gif" alt="SQLite" border="0">
 | |
| </a>
 | |
| <div><!-- IE hack to prevent disappearing logo --></div>
 | |
| <div class="tagline desktoponly">
 | |
| Small. Fast. Reliable.<br>Choose any three.
 | |
| </div>
 | |
| <div class="menu mainmenu">
 | |
| <ul>
 | |
| <li><a href="../index.html">Home</a>
 | |
| <li class='mobileonly'><a href="javascript:void(0)" onclick='toggle_div("submenu")'>Menu</a>
 | |
| <li class='wideonly'><a href='../about.html'>About</a>
 | |
| <li class='desktoponly'><a href="../docs.html">Documentation</a>
 | |
| <li class='desktoponly'><a href="../download.html">Download</a>
 | |
| <li class='wideonly'><a href='../copyright.html'>License</a>
 | |
| <li class='desktoponly'><a href="../support.html">Support</a>
 | |
| <li class='desktoponly'><a href="../prosupport.html">Purchase</a>
 | |
| <li class='search' id='search_menubutton'>
 | |
| <a href="javascript:void(0)" onclick='toggle_search()'>Search</a>
 | |
| </ul>
 | |
| </div>
 | |
| <div class="menu submenu" id="submenu">
 | |
| <ul>
 | |
| <li><a href='../about.html'>About</a>
 | |
| <li><a href='../docs.html'>Documentation</a>
 | |
| <li><a href='../download.html'>Download</a>
 | |
| <li><a href='../support.html'>Support</a>
 | |
| <li><a href='../prosupport.html'>Purchase</a>
 | |
| </ul>
 | |
| </div>
 | |
| <div class="searchmenu" id="searchmenu">
 | |
| <form method="GET" action="../search">
 | |
| <select name="s" id="searchtype">
 | |
| <option value="d">Search Documentation</option>
 | |
| <option value="c">Search Changelog</option>
 | |
| </select>
 | |
| <input type="text" name="q" id="searchbox" value="">
 | |
| <input type="submit" value="Go">
 | |
| </form>
 | |
| </div>
 | |
| </div>
 | |
| <script>
 | |
| function toggle_div(nm) {
 | |
| var w = document.getElementById(nm);
 | |
| if( w.style.display=="block" ){
 | |
| w.style.display = "none";
 | |
| }else{
 | |
| w.style.display = "block";
 | |
| }
 | |
| }
 | |
| function toggle_search() {
 | |
| var w = document.getElementById("searchmenu");
 | |
| if( w.style.display=="block" ){
 | |
| w.style.display = "none";
 | |
| } else {
 | |
| w.style.display = "block";
 | |
| setTimeout(function(){
 | |
| document.getElementById("searchbox").focus()
 | |
| }, 30);
 | |
| }
 | |
| }
 | |
| function div_off(nm){document.getElementById(nm).style.display="none";}
 | |
| window.onbeforeunload = function(e){div_off("submenu");}
 | |
| /* Disable the Search feature if we are not operating from CGI, since */
 | |
| /* Search is accomplished using CGI and will not work without it. */
 | |
| if( !location.origin || !location.origin.match || !location.origin.match(/http/) ){
 | |
| document.getElementById("search_menubutton").style.display = "none";
 | |
| }
 | |
| /* Used by the Hide/Show button beside syntax diagrams, to toggle the */
 | |
| function hideorshow(btn,obj){
 | |
| var x = document.getElementById(obj);
 | |
| var b = document.getElementById(btn);
 | |
| if( x.style.display!='none' ){
 | |
| x.style.display = 'none';
 | |
| b.innerHTML='show';
 | |
| }else{
 | |
| x.style.display = '';
 | |
| b.innerHTML='hide';
 | |
| }
 | |
| return false;
 | |
| }
 | |
| </script>
 | |
| </div>
 | |
| <!-- keywords: sqlite3_table_column_metadata -->
 | |
| <div class=nosearch>
 | |
| <a href="intro.html"><h2>SQLite C Interface</h2></a>
 | |
| <h2>Extract Metadata About A Column Of A Table</h2>
 | |
| </div>
 | |
| <blockquote><pre>
 | |
| int sqlite3_table_column_metadata(
 | |
|   sqlite3 *db,                /* Connection handle */
 | |
|   const char *zDbName,        /* Database name or NULL */
 | |
|   const char *zTableName,     /* Table name */
 | |
|   const char *zColumnName,    /* Column name */
 | |
|   char const **pzDataType,    /* OUTPUT: Declared data type */
 | |
|   char const **pzCollSeq,     /* OUTPUT: Collation sequence name */
 | |
|   int *pNotNull,              /* OUTPUT: True if NOT NULL constraint exists */
 | |
|   int *pPrimaryKey,           /* OUTPUT: True if column part of PK */
 | |
|   int *pAutoinc               /* OUTPUT: True if column is auto-increment */
 | |
| );
 | |
| </pre></blockquote>
 | |
| <p>
 | |
| The sqlite3_table_column_metadata(X,D,T,C,....) routine returns
 | |
| information about column C of table T in database D
 | |
| on <a href="../c3ref/sqlite3.html">database connection</a> X.  The sqlite3_table_column_metadata()
 | |
| interface returns SQLITE_OK and fills in the non-NULL pointers in
 | |
| the final five arguments with appropriate values if the specified
 | |
| column exists.  The sqlite3_table_column_metadata() interface returns
 | |
| SQLITE_ERROR if the specified column does not exist.
 | |
| If the column-name parameter to sqlite3_table_column_metadata() is a
 | |
| NULL pointer, then this routine simply checks for the existence of the
 | |
| table and returns SQLITE_OK if the table exists and SQLITE_ERROR if it
 | |
| does not.  If the table name parameter T in a call to
 | |
| sqlite3_table_column_metadata(X,D,T,C,...) is NULL then the result is
 | |
| undefined behavior.</p>
 | |
| 
 | |
| <p>The column is identified by the second, third and fourth parameters to
 | |
| this function. The second parameter is either the name of the database
 | |
| (i.e. "main", "temp", or an attached database) containing the specified
 | |
| table or NULL. If it is NULL, then all attached databases are searched
 | |
| for the table using the same algorithm used by the database engine to
 | |
| resolve unqualified table references.</p>
 | |
| 
 | |
| <p>The third and fourth parameters to this function are the table and column
 | |
| name of the desired column, respectively.</p>
 | |
| 
 | |
| <p>Metadata is returned by writing to the memory locations passed as the 5th
 | |
| and subsequent parameters to this function. Any of these arguments may be
 | |
| NULL, in which case the corresponding element of metadata is omitted.</p>
 | |
| 
 | |
| <p><blockquote>
 | |
| <table border="1">
 | |
| <tr><th> Parameter <th> Output<br>Type <th>  Description</p>
 | |
| 
 | |
| <p><tr><td> 5th <td> const char* <td> Data type
 | |
| <tr><td> 6th <td> const char* <td> Name of default collation sequence
 | |
| <tr><td> 7th <td> int         <td> True if column has a NOT NULL constraint
 | |
| <tr><td> 8th <td> int         <td> True if column is part of the PRIMARY KEY
 | |
| <tr><td> 9th <td> int         <td> True if column is <a href="../autoinc.html">AUTOINCREMENT</a>
 | |
| </table>
 | |
| </blockquote></p>
 | |
| 
 | |
| <p>The memory pointed to by the character pointers returned for the
 | |
| declaration type and collation sequence is valid until the next
 | |
| call to any SQLite API function.</p>
 | |
| 
 | |
| <p>If the specified table is actually a view, an <a href="../rescode.html">error code</a> is returned.</p>
 | |
| 
 | |
| <p>If the specified column is "rowid", "oid" or "_rowid_" and the table
 | |
| is not a <a href="../withoutrowid.html">WITHOUT ROWID</a> table and an
 | |
| <a href="../lang_createtable.html#rowid">INTEGER PRIMARY KEY</a> column has been explicitly declared, then the output
 | |
| parameters are set for the explicitly declared column. If there is no
 | |
| <a href="../lang_createtable.html#rowid">INTEGER PRIMARY KEY</a> column, then the outputs
 | |
| for the <a href="../lang_createtable.html#rowid">rowid</a> are set as follows:</p>
 | |
| 
 | |
| <p><pre>
 | |
| data type: "INTEGER"
 | |
| collation sequence: "BINARY"
 | |
| not null: 0
 | |
| primary key: 1
 | |
| auto increment: 0
 | |
| </pre></p>
 | |
| 
 | |
| <p>This function causes all database schemas to be read from disk and
 | |
| parsed, if that has not already been done, and returns an error if
 | |
| any errors are encountered while loading the schema.
 | |
| </p><p>See also lists of
 | |
|   <a href="objlist.html">Objects</a>,
 | |
|   <a href="constlist.html">Constants</a>, and
 | |
|   <a href="funclist.html">Functions</a>.</p>
 |