home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 May / Chip_2000-05_cd1.bin / zkuste / Perl / ActivePerl-5.6.0.613.msi / 䆊䌷䈹䈙䏵-䞅䞆䞀㡆䞃䄦䠥 / _63c72fb9580cf0d4746525ac0e3b2af9 < prev    next >
Text File  |  2000-03-23  |  25KB  |  566 lines

  1.  
  2. <HTML>
  3. <HEAD>
  4. <TITLE>Win32::ODBC - ODBC Extension for Win32</TITLE>
  5. <LINK REL="stylesheet" HREF="../../../Active.css" TYPE="text/css">
  6. <LINK REV="made" HREF="mailto:">
  7. </HEAD>
  8.  
  9. <BODY>
  10. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  11. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  12. <STRONG><P CLASS=block> Win32::ODBC - ODBC Extension for Win32</P></STRONG>
  13. </TD></TR>
  14. </TABLE>
  15.  
  16. <A NAME="__index__"></A>
  17. <!-- INDEX BEGIN -->
  18.  
  19. <UL>
  20.  
  21.     <LI><A HREF="#name">NAME</A></LI><LI><A HREF="#supportedplatforms">SUPPORTED PLATFORMS</A></LI>
  22.  
  23.     <LI><A HREF="#synopsis">SYNOPSIS</A></LI>
  24.     <LI><A HREF="#description">DESCRIPTION</A></LI>
  25.     <UL>
  26.  
  27.         <LI><A HREF="#background">Background</A></LI>
  28.         <LI><A HREF="#benefits">Benefits</A></LI>
  29.     </UL>
  30.  
  31.     <LI><A HREF="#constants">CONSTANTS</A></LI>
  32.     <LI><A HREF="#special notation">SPECIAL NOTATION</A></LI>
  33.     <LI><A HREF="#constructor">CONSTRUCTOR</A></LI>
  34.     <LI><A HREF="#methods">METHODS</A></LI>
  35.     <LI><A HREF="#limitations">LIMITATIONS</A></LI>
  36.     <LI><A HREF="#installation notes">INSTALLATION NOTES</A></LI>
  37.     <LI><A HREF="#other documentation">OTHER DOCUMENTATION</A></LI>
  38.     <LI><A HREF="#author">AUTHOR</A></LI>
  39.     <LI><A HREF="#credits">CREDITS</A></LI>
  40.     <LI><A HREF="#disclaimer">DISCLAIMER</A></LI>
  41.     <LI><A HREF="#history">HISTORY</A></LI>
  42.     <LI><A HREF="#copyright">COPYRIGHT</A></LI>
  43. </UL>
  44. <!-- INDEX END -->
  45.  
  46. <HR>
  47. <P>
  48. <H1><A NAME="name">NAME</A></H1>
  49. <P>Win32::ODBC - ODBC Extension for Win32</P>
  50. <P>
  51. <HR>
  52. <H1><A NAME="supportedplatforms">SUPPORTED PLATFORMS</A></H1>
  53. <UL>
  54. <LI>Windows</LI>
  55. </UL>
  56. <HR>
  57. <H1><A NAME="synopsis">SYNOPSIS</A></H1>
  58. <P>To use this module, include the following statement at the top of your
  59. script:</P>
  60. <PRE>
  61.     use Win32::ODBC;</PRE>
  62. <P>Next, create a data connection to your DSN:</P>
  63. <PRE>
  64.     $Data = new Win32::ODBC("MyDSN");</PRE>
  65. <P><STRONG>NOTE</STRONG>: <EM>MyDSN</EM> can be either the <EM>DSN</EM> as defined in the ODBC
  66. Administrator, <EM>or</EM> it can be an honest-to-God <EM>DSN Connect String</EM>.</P>
  67. <PRE>
  68.     Example: "DSN=My Database;UID=Brown Cow;PWD=Moo;"</PRE>
  69. <P>You should check to see if <CODE>$Data</CODE> is indeed defined, otherwise there
  70. has been an error.</P>
  71. <P>You can now send SQL queries and retrieve info to your heart's
  72. content! See the description of the methods provided by this module
  73. below and also the file <EM>TEST.PL</EM> as referred to in <A HREF="#installation notes">INSTALLATION NOTES</A> to see how it all works.</P>
  74. <P>Finally, <STRONG>MAKE SURE</STRONG> that you close your connection when you are
  75. finished:</P>
  76. <PRE>
  77.     $Data->Close();</PRE>
  78. <P>
  79. <HR>
  80. <H1><A NAME="description">DESCRIPTION</A></H1>
  81. <P>
  82. <H2><A NAME="background">Background</A></H2>
  83. <P>This is a hack of Dan DeMaggio's <<A HREF="mailto:dmag@umich.edu">dmag@umich.edu</A>> <EM>NTXS.C</EM> ODBC
  84. implementation. I have recoded and restructured most of it including
  85. most of the <EM>ODBC.PM</EM> package, but its very core is still based on
  86. Dan's code (thanks Dan!).</P>
  87. <P>The history of this extension is found in the file <EM>HISTORY.TXT</EM> that
  88. comes with the original archive (see <A HREF="#installation notes">INSTALLATION NOTES</A> below).</P>
  89. <P>
  90. <H2><A NAME="benefits">Benefits</A></H2>
  91. <P>And what are the benefits of this module?</P>
  92. <UL>
  93. <LI>
  94. The number of ODBC connections is limited by memory and ODBC itself
  95. (have as many as you want!).
  96. <P></P>
  97. <LI>
  98. The working limit for the size of a field is 10,240 bytes, but you can
  99. increase that limit (if needed) to a max of 2,147,483,647 bytes. (You
  100. can always recompile to increase the max limit.)
  101. <P></P>
  102. <LI>
  103. You can open a connection by either specifing a DSN or a connection
  104. string!
  105. <P></P>
  106. <LI>
  107. You can open and close the connections in any order!
  108. <P></P>
  109. <LI>
  110. Other things that I can not think of right now... :)
  111. <P></P></UL>
  112. <P>
  113. <HR>
  114. <H1><A NAME="constants">CONSTANTS</A></H1>
  115. <P>This package defines a number of constants. You may refer to each of
  116. these constants using the notation <CODE>ODBC::xxxxx</CODE>, where <CODE>xxxxx</CODE> is
  117. the constant.</P>
  118. <P>Example:</P>
  119. <PRE>
  120.    print ODBC::SQL_SQL_COLUMN_NAME, "\n";</PRE>
  121. <P>
  122. <HR>
  123. <H1><A NAME="special notation">SPECIAL NOTATION</A></H1>
  124. <P>For the method documentation that follows, an <STRONG>*</STRONG> following the
  125. method parameters indicates that that method is new or has been
  126. modified for this version.</P>
  127. <P>
  128. <HR>
  129. <H1><A NAME="constructor">CONSTRUCTOR</A></H1>
  130. <DL>
  131. <DT><STRONG><A NAME="item_new">new ( ODBC_OBJECT | DSN [, (OPTION1, VALUE1), (OPTION2, VALUE2) ...] )
  132. *</A></STRONG><BR>
  133. <DD>
  134. Creates a new ODBC connection based on <CODE>DSN</CODE>, or, if you specify an
  135. already existing ODBC object, then a new ODBC object will be created
  136. but using the ODBC Connection specified by <CODE>ODBC_OBJECT</CODE>. (The new
  137. object will be a new <EM>hstmt</EM> using the <EM>hdbc</EM> connection in
  138. <CODE>ODBC_OBJECT</CODE>.)
  139. <P><CODE>DSN</CODE> is <EM>Data Source Name</EM> or a proper <CODE>ODBCDriverConnect</CODE> string.</P>
  140. <P>You can specify SQL Connect Options that are implemented before the
  141. actual connection to the DSN takes place. These option/values are the
  142. same as specified in <A HREF="#item_GetConnectOption"><CODE>GetConnectOption</CODE></A>/<A HREF="#item_SetConnectOption"><CODE>SetConnectOption</CODE></A> (see
  143. below) and are defined in the ODBC API specs.</P>
  144. <P>Returns a handle to the database on success, or <EM>undef</EM> on failure.</P>
  145. <P></P></DL>
  146. <P>
  147. <HR>
  148. <H1><A NAME="methods">METHODS</A></H1>
  149. <DL>
  150. <DT><STRONG><A NAME="item_Catalog">Catalog ( QUALIFIER, OWNER, NAME, TYPE )</A></STRONG><BR>
  151. <DD>
  152. Tells ODBC to create a data set that contains table information about
  153. the DSN. Use <CODE>Fetch</CODE> and <A HREF="#item_Data"><CODE>Data</CODE></A> or <A HREF="#item_DataHash"><CODE>DataHash</CODE></A> to retrieve the data.
  154. The returned format is:
  155. <PRE>
  156.     [Qualifier] [Owner] [Name] [Type]</PRE>
  157. <P>Returns <EM>true</EM> on error.</P>
  158. <P></P>
  159. <DT><STRONG><A NAME="item_ColAttributes">ColAttributes ( ATTRIBUTE [, FIELD_NAMES ] )</A></STRONG><BR>
  160. <DD>
  161. Returns the attribute <CODE>ATTRIBUTE</CODE> on each of the fields in the list
  162. <CODE>FIELD_NAMES</CODE> in the current record set. If <CODE>FIELD_NAMES</CODE> is empty,
  163. then all fields are assumed. The attributes are returned as an
  164. associative array.
  165. <P></P>
  166. <DT><STRONG><A NAME="item_ConfigDSN">ConfigDSN ( OPTION, DRIVER, ATTRIBUTE1 [, ATTRIBUTE2, ATTRIBUTE3, ...
  167. ] )</A></STRONG><BR>
  168. <DD>
  169. Configures a DSN. <CODE>OPTION</CODE> takes on one of the following values:
  170. <PRE>
  171.     ODBC_ADD_DSN.......Adds a new DSN.
  172.     ODBC_MODIFY_DSN....Modifies an existing DSN.
  173.     ODBC_REMOVE_DSN....Removes an existing DSN.</PRE>
  174. <PRE>
  175.     ODBC_ADD_SYS_DSN.......Adds a new System DSN.
  176.     ODBC_MODIFY_SYS_DSN....Modifies an existing System DSN.
  177.     ODBC_REMOVE_SYS_DSN....Removes an existing System DSN.</PRE>
  178. <P>You must specify the driver <CODE>DRIVER</CODE> (which can be retrieved by using
  179. <A HREF="#item_DataSources"><CODE>DataSources</CODE></A> or <A HREF="#item_Drivers"><CODE>Drivers</CODE></A>).</P>
  180. <P><CODE>ATTRIBUTE1</CODE> <STRONG>should</STRONG> be <EM>``DSN=xxx''</EM> where <EM>xxx</EM> is the name of
  181. the DSN. Other attributes can be any DSN attribute such as:</P>
  182. <PRE>
  183.     "UID=Cow"
  184.     "PWD=Moo"
  185.     "Description=My little bitty Data Source Name"</PRE>
  186. <P>Returns <EM>true</EM> on success, <EM>false</EM> on failure.</P>
  187. <P><STRONG>NOTE 1</STRONG>: If you use <CODE>ODBC_ADD_DSN</CODE>, then you must include at least
  188. <EM>``DSN=xxx''</EM> and the location of the database.</P>
  189. <P>Example: For MS Access databases, you must specify the
  190. <EM>DatabaseQualifier</EM>:</P>
  191. <PRE>
  192.     "DBQ=c:\\...\\MyDatabase.mdb"</PRE>
  193. <P><STRONG>NOTE 2</STRONG>: If you use <CODE>ODBC_MODIFY_DSN</CODE>, then you need only specify
  194. the <EM>``DNS=xxx''</EM> attribute. Any other attribute you include will be
  195. changed to what you specify.</P>
  196. <P><STRONG>NOTE 3</STRONG>: If you use <CODE>ODBC_REMOVE_DSN</CODE>, then you need only specify
  197. the <EM>``DSN=xxx''</EM> attribute.</P>
  198. <P></P>
  199. <DT><STRONG><A NAME="item_Connection">Connection ()</A></STRONG><BR>
  200. <DD>
  201. Returns the connection number associated with the ODBC connection.
  202. <P></P>
  203. <DT><STRONG><A NAME="item_Close">Close ()</A></STRONG><BR>
  204. <DD>
  205. Closes the ODBC connection. No return value.
  206. <P></P>
  207. <DT><STRONG><A NAME="item_Data">Data ( [ FIELD_NAME ] )</A></STRONG><BR>
  208. <DD>
  209. Returns the contents of column name <CODE>FIELD_NAME</CODE> or the current row
  210. (if nothing is specified).
  211. <P></P>
  212. <DT><STRONG><A NAME="item_DataHash">DataHash ( [ FIELD1, FIELD2, ... ] )</A></STRONG><BR>
  213. <DD>
  214. Returns the contents for <CODE>FIELD1, FIELD2, ...</CODE> or the entire row (if
  215. nothing is specified) as an associative array consisting of:
  216. <PRE>
  217.     {Field Name} => Field Data</PRE>
  218. <P></P>
  219. <DT><STRONG><A NAME="item_DataSources">DataSources ()</A></STRONG><BR>
  220. <DD>
  221. Returns an associative array of Data Sources and ODBC remarks about them.
  222. They are returned in the form of:
  223. <PRE>
  224.     $ArrayName{'DSN'}=Driver</PRE>
  225. <P>where <EM>DSN</EM> is the Data Source Name and ODBC Driver used.</P>
  226. <P></P>
  227. <DT><STRONG><A NAME="item_Debug">Debug ( [ 1 | 0 ] )</A></STRONG><BR>
  228. <DD>
  229. Sets the debug option to on or off. If nothing is specified, then
  230. nothing is changed.
  231. <P>Returns the debugging value (<EM>1</EM> or <EM>0</EM>).</P>
  232. <P></P>
  233. <DT><STRONG><A NAME="item_Drivers">Drivers ()</A></STRONG><BR>
  234. <DD>
  235. Returns an associative array of ODBC Drivers and their attributes.
  236. They are returned in the form of:
  237. <PRE>
  238.     $ArrayName{'DRIVER'}=Attrib1;Attrib2;Attrib3;...</PRE>
  239. <P>where <EM>DRIVER</EM> is the ODBC Driver Name and <EM>AttribX</EM> are the
  240. driver-defined attributes.</P>
  241. <P></P>
  242. <DT><STRONG><A NAME="item_DropCursor">DropCursor ( [ CLOSE_TYPE ] )</A></STRONG><BR>
  243. <DD>
  244. Drops the cursor associated with the ODBC object. This forces the
  245. cursor to be deallocated. This overrides <A HREF="#item_SetStmtCloseType"><CODE>SetStmtCloseType</CODE></A>, but the
  246. ODBC object does not lose the <CODE>StmtCloseType</CODE> setting. <CODE>CLOSE_TYPE</CODE>
  247. can be any valid <CODE>SmtpCloseType</CODE> and will perform a close on the stmt
  248. using the specified close type.
  249. <P>Returns <EM>true</EM> on success, <EM>false</EM> on failure.</P>
  250. <P></P>
  251. <DT><STRONG><A NAME="item_DumpData">DumpData ()</A></STRONG><BR>
  252. <DD>
  253. Dumps to the screen the fieldnames and all records of the current data
  254. set. Used primarily for debugging. No return value.
  255. <P></P>
  256. <DT><STRONG><A NAME="item_Error">Error ()</A></STRONG><BR>
  257. <DD>
  258. Returns the last encountered error. The returned value is context
  259. dependent:
  260. <P>If called in a <EM>scalar</EM> context, then a <EM>3-element array</EM> is
  261. returned:</P>
  262. <PRE>
  263.     ( ERROR_NUMBER, ERROR_TEXT, CONNECTION_NUMBER )</PRE>
  264. <P>If called in a <EM>string</EM> context, then a <EM>string</EM> is returned:</P>
  265. <PRE>
  266.     "[ERROR_NUMBER] [CONNECTION_NUMBER] [ERROR_TEXT]"</PRE>
  267. <P>If debugging is on then two more variables are returned:</P>
  268. <PRE>
  269.     ( ..., FUNCTION, LEVEL )</PRE>
  270. <P>where <CODE>FUNCTION</CODE> is the name of the function in which the error
  271. occurred, and <CODE>LEVEL</CODE> represents extra information about the error
  272. (usually the location of the error).</P>
  273. <P></P>
  274. <DT><STRONG><A NAME="item_FetchRow">FetchRow ( [ ROW [, TYPE ] ] )</A></STRONG><BR>
  275. <DD>
  276. Retrieves the next record from the keyset. When <CODE>ROW</CODE> and/or <CODE>TYPE</CODE>
  277. are specified, the call is made using <CODE>SQLExtendedFetch</CODE> instead of
  278. <CODE>SQLFetch</CODE>.
  279. <P><STRONG>NOTE 1</STRONG>: If you are unaware of <CODE>SQLExtendedFetch</CODE> and its
  280. implications, stay with just regular <A HREF="#item_FetchRow"><CODE>FetchRow</CODE></A> with no parameters.</P>
  281. <P><STRONG>NOTE 2</STRONG>: The ODBC API explicitly warns against mixing calls to
  282. <CODE>SQLFetch</CODE> and <CODE>SQLExtendedFetch</CODE>; use one or the other but not
  283. both.</P>
  284. <P>If <EM>ROW</EM> is specified, it moves the keyset <STRONG>RELATIVE</STRONG> <CODE>ROW</CODE> number
  285. of rows.</P>
  286. <P>If <EM>ROW</EM> is specified and <CODE>TYPE</CODE> is <STRONG>not</STRONG>, then the type used is
  287. <STRONG>RELATIVE</STRONG>.</P>
  288. <P>Returns <EM>true</EM> when another record is available to read, and <EM>false</EM>
  289. when there are no more records.</P>
  290. <P></P>
  291. <DT><STRONG><A NAME="item_FieldNames">FieldNames ()</A></STRONG><BR>
  292. <DD>
  293. Returns an array of fieldnames found in the current data set. There is
  294. no guarantee on order.
  295. <P></P>
  296. <DT><STRONG><A NAME="item_GetConnections">GetConnections ()</A></STRONG><BR>
  297. <DD>
  298. Returns an array of connection numbers showing what connections are
  299. currently open.
  300. <P></P>
  301. <DT><STRONG><A NAME="item_GetConnectOption">GetConnectOption ( OPTION )</A></STRONG><BR>
  302. <DD>
  303. Returns the value of the specified connect option <CODE>OPTION</CODE>. Refer to
  304. ODBC documentation for more information on the options and values.
  305. <P>Returns a string or scalar depending upon the option specified.</P>
  306. <P></P>
  307. <DT><STRONG><A NAME="item_GetCursorName">GetCursorName ()</A></STRONG><BR>
  308. <DD>
  309. Returns the name of the current cursor as a string or <EM>undef</EM>.
  310. <P></P>
  311. <DT><STRONG><A NAME="item_GetData">GetData ()</A></STRONG><BR>
  312. <DD>
  313. Retrieves the current row from the dataset. This is not generally
  314. used by users; it is used internally.
  315. <P>Returns an array of field data where the first element is either
  316. <EM>false</EM> (if successful) and <EM>true</EM> (if <STRONG>not</STRONG> successful).</P>
  317. <P></P>
  318. <DT><STRONG><A NAME="item_getDSN">getDSN ( [ DSN ] )</A></STRONG><BR>
  319. <DD>
  320. Returns an associative array indicating the configuration for the
  321. specified DSN.
  322. <P>If no DSN is specified then the current connection is used.</P>
  323. <P>The returned associative array consists of:</P>
  324. <PRE>
  325.     keys=DSN keyword; values=Keyword value. $Data{$Keyword}=Value</PRE>
  326. <P></P>
  327. <DT><STRONG><A NAME="item_GetFunctions">GetFunctions ( [ FUNCTION1, FUNCTION2, ... ] )</A></STRONG><BR>
  328. <DD>
  329. Returns an associative array indicating the ability of the ODBC Driver
  330. to support the specified functions. If no functions are specified,
  331. then a 100 element associative array is returned containing all
  332. possible functions and their values.
  333. <P><CODE>FUNCTION</CODE> must be in the form of an ODBC API constant like
  334. <CODE>SQL_API_SQLTRANSACT</CODE>.</P>
  335. <P>The returned array will contain the results like:</P>
  336. <PRE>
  337.     $Results{SQL_API_SQLTRANSACT}=Value</PRE>
  338. <P>Example:</P>
  339. <PRE>
  340.     $Results = $O->GetFunctions(
  341.                                 $O->SQL_API_SQLTRANSACT,
  342.                                 SQL_API_SQLSETCONNECTOPTION
  343.                                );
  344.     $ConnectOption = $Results{SQL_API_SQLSETCONNECTOPTION};
  345.     $Transact = $Results{SQL_API_SQLTRANSACT};</PRE>
  346. <P></P>
  347. <DT><STRONG><A NAME="item_GetInfo">GetInfo ( OPTION )</A></STRONG><BR>
  348. <DD>
  349. Returns a string indicating the value of the particular
  350. option specified.
  351. <P></P>
  352. <DT><STRONG><A NAME="item_GetMaxBufSize">GetMaxBufSize ()</A></STRONG><BR>
  353. <DD>
  354. Returns the current allocated limit for <EM>MaxBufSize</EM>. For more info,
  355. see <A HREF="#item_SetMaxBufSize"><CODE>SetMaxBufSize</CODE></A>.
  356. <P></P>
  357. <DT><STRONG><A NAME="item_GetSQLState">GetSQLState () *</A></STRONG><BR>
  358. <DD>
  359. Returns a string indicating the SQL state as reported by ODBC. The SQL
  360. state is a code that the ODBC Manager or ODBC Driver returns after the
  361. execution of a SQL function. This is helpful for debugging purposes.
  362. <P></P>
  363. <DT><STRONG><A NAME="item_GetStmtCloseType">GetStmtCloseType ( [ CONNECTION ] )</A></STRONG><BR>
  364. <DD>
  365. Returns a string indicating the type of closure that will be used
  366. everytime the <EM>hstmt</EM> is freed. See <A HREF="#item_SetStmtCloseType"><CODE>SetStmtCloseType</CODE></A> for details.
  367. <P>By default, the connection of the current object will be used. If
  368. <CODE>CONNECTION</CODE> is a valid connection number, then it will be used.</P>
  369. <P></P>
  370. <DT><STRONG><A NAME="item_GetStmtOption">GetStmtOption ( OPTION )</A></STRONG><BR>
  371. <DD>
  372. Returns the value of the specified statement option <CODE>OPTION</CODE>. Refer
  373. to ODBC documentation for more information on the options and values.
  374. <P>Returns a string or scalar depending upon the option specified.</P>
  375. <P></P>
  376. <DT><STRONG><A NAME="item_MoreResults">MoreResults ()</A></STRONG><BR>
  377. <DD>
  378. This will report whether there is data yet to be retrieved from the
  379. query. This can happen if the query was a multiple select.
  380. <P>Example:</P>
  381. <PRE>
  382.     "SELECT * FROM [foo] SELECT * FROM [bar]"</PRE>
  383. <P><STRONG>NOTE</STRONG>: Not all drivers support this.</P>
  384. <P>Returns <EM>1</EM> if there is more data, <EM>undef</EM> otherwise.</P>
  385. <P></P>
  386. <DT><STRONG><A NAME="item_RowCount">RowCount ( CONNECTION )</A></STRONG><BR>
  387. <DD>
  388. For <EM>UPDATE</EM>, <EM>INSERT</EM> and <EM>DELETE</EM> statements, the returned value
  389. is the number of rows affected by the request or <EM>-1</EM> if the number
  390. of affected rows is not available.
  391. <P><STRONG>NOTE 1</STRONG>: This function is not supported by all ODBC drivers! Some
  392. drivers do support this but not for all statements (e.g., it is
  393. supported for <EM>UPDATE</EM>, <EM>INSERT</EM> and <EM>DELETE</EM> commands but not for
  394. the <EM>SELECT</EM> command).</P>
  395. <P><STRONG>NOTE 2</STRONG>: Many data sources cannot return the number of rows in a
  396. result set before fetching them; for maximum interoperability,
  397. applications should not rely on this behavior.</P>
  398. <P>Returns the number of affected rows, or <EM>-1</EM> if not supported by the
  399. driver in the current context.</P>
  400. <P></P>
  401. <DT><STRONG><A NAME="item_Run">Run ( SQL )</A></STRONG><BR>
  402. <DD>
  403. Executes the SQL command <STRONG>SQL</STRONG> and dumps to the screen info about
  404. it. Used primarily for debugging.
  405. <P>No return value.</P>
  406. <P></P>
  407. <DT><STRONG><A NAME="item_SetConnectOption">SetConnectOption ( OPTION ) *</A></STRONG><BR>
  408. <DD>
  409. Sets the value of the specified connect option <STRONG>OPTION</STRONG>. Refer to
  410. ODBC documentation for more information on the options and values.
  411. <P>Returns <EM>true</EM> on success, <EM>false</EM> otherwise.</P>
  412. <P></P>
  413. <DT><STRONG><A NAME="item_SetCursorName">SetCursorName ( NAME ) *</A></STRONG><BR>
  414. <DD>
  415. Sets the name of the current cursor.
  416. <P>Returns <EM>true</EM> on success, <EM>false</EM> otherwise.</P>
  417. <P></P>
  418. <DT><STRONG><A NAME="item_SetPos">SetPos ( ROW [, OPTION, LOCK ] ) *</A></STRONG><BR>
  419. <DD>
  420. Moves the cursor to the row <CODE>ROW</CODE> within the current keyset (<STRONG>not</STRONG>
  421. the current data/result set).
  422. <P>Returns <EM>true</EM> on success, <EM>false</EM> otherwise.</P>
  423. <P></P>
  424. <DT><STRONG><A NAME="item_SetMaxBufSize">SetMaxBufSize ( SIZE )</A></STRONG><BR>
  425. <DD>
  426. This sets the <EM>MaxBufSize</EM> for a particular connection. This will
  427. most likely never be needed but...
  428. <P>The amount of memory that is allocated to retrieve the field data of a
  429. record is dynamic and changes when it need to be larger. I found that
  430. a memo field in an MS Access database ended up requesting 4 Gig of
  431. space. This was a bit much so there is an imposed limit (2,147,483,647
  432. bytes) that can be allocated for data retrieval.</P>
  433. <P>Since it is possible that someone has a database with field data
  434. greater than 10,240, you can use this function to increase the limit
  435. up to a ceiling of 2,147,483,647 (recompile if you need more).</P>
  436. <P>Returns the max number of bytes.</P>
  437. <P></P>
  438. <DT><STRONG><A NAME="item_SetStmtCloseType">SetStmtCloseType ( TYPE [, CONNECTION ] )</A></STRONG><BR>
  439. <DD>
  440. Sets a particular <EM>hstmt</EM> close type for the connection. This is the
  441. same as <CODE>ODBCFreeStmt(hstmt, TYPE)</CODE>. By default, the connection of
  442. the current object will be used. If <CODE>CONNECTION</CODE> is a valid
  443. connection number, then it will be used.
  444. <P><CODE>TYPE</CODE> may be one of:</P>
  445. <PRE>
  446.     SQL_CLOSE
  447.     SQL_DROP
  448.     SQL_UNBIND
  449.     SQL_RESET_PARAMS</PRE>
  450. <P>Returns a string indicating the newly set type.</P>
  451. <P></P>
  452. <DT><STRONG><A NAME="item_SetStmtOption">SetStmtOption ( OPTION ) *</A></STRONG><BR>
  453. <DD>
  454. Sets the value of the specified statement option <CODE>OPTION</CODE>. Refer to
  455. ODBC documentation for more information on the options and values.
  456. <P>Returns <EM>true</EM> on success, <EM>false</EM> otherwise.</P>
  457. <P></P>
  458. <DT><STRONG><A NAME="item_ShutDown">ShutDown ()</A></STRONG><BR>
  459. <DD>
  460. Closes the ODBC connection and dumps to the screen info about
  461. it. Used primarily for debugging.
  462. <P>No return value.</P>
  463. <P></P>
  464. <DT><STRONG><A NAME="item_Sql">Sql ( SQL_STRING )</A></STRONG><BR>
  465. <DD>
  466. Executes the SQL command <CODE>SQL_STRING</CODE> on the current connection.
  467. <P>Returns <EM>?</EM> on success, or an error number on failure.</P>
  468. <P></P>
  469. <DT><STRONG><A NAME="item_TableList">TableList ( QUALIFIER, OWNER, NAME, TYPE )</A></STRONG><BR>
  470. <DD>
  471. Returns the catalog of tables that are available in the DSN. For an
  472. unknown parameter, just specify the empty string <EM>``''</EM>.
  473. <P>Returns an array of table names.</P>
  474. <P></P>
  475. <DT><STRONG><A NAME="item_Transact">Transact ( TYPE ) *</A></STRONG><BR>
  476. <DD>
  477. Forces the ODBC connection to perform a <EM>rollback</EM> or <EM>commit</EM>
  478. transaction.
  479. <P><CODE>TYPE</CODE> may be one of:</P>
  480. <PRE>
  481.     SQL_COMMIT
  482.     SQL_ROLLBACK</PRE>
  483. <P><STRONG>NOTE</STRONG>: This only works with ODBC drivers that support transactions.
  484. Your driver supports it if <EM>true</EM> is returned from:</P>
  485. <PRE>
  486.     $O->GetFunctions($O->SQL_API_SQLTRANSACT)[1]</PRE>
  487. <P>(See <A HREF="#item_GetFunctions"><CODE>GetFunctions</CODE></A> for more details.)</P>
  488. <P>Returns <EM>true</EM> on success, <EM>false</EM> otherwise.</P>
  489. <P></P>
  490. <DT><STRONG><A NAME="item_Version">Version ( PACKAGES )</A></STRONG><BR>
  491. <DD>
  492. Returns an array of version numbers for the requested packages
  493. (<EM>ODBC.pm</EM> or <EM>ODBC.PLL</EM>). If the list <CODE>PACKAGES</CODE> is empty, then
  494. all version numbers are returned.
  495. <P></P></DL>
  496. <P>
  497. <HR>
  498. <H1><A NAME="limitations">LIMITATIONS</A></H1>
  499. <P>What known problems does this thing have?</P>
  500. <UL>
  501. <LI>
  502. If the account under which the process runs does not have write
  503. permission on the default directory (for the process, not the ODBC
  504. DSN), you will probably get a runtime error during a
  505. <CODE>SQLConnection</CODE>. I don't think that this is a problem with the code,
  506. but more like a problem with ODBC. This happens because some ODBC
  507. drivers need to write a temporary file. I noticed this using the MS
  508. Jet Engine (Access Driver).
  509. <P></P>
  510. <LI>
  511. This module has been neither optimized for speed nor optimized for
  512. memory consumption.
  513. <P></P></UL>
  514. <P>
  515. <HR>
  516. <H1><A NAME="installation notes">INSTALLATION NOTES</A></H1>
  517. <P>If you wish to use this module with a build of Perl other than
  518. ActivePerl, you may wish to fetch the original source distribution for
  519. this module at:</P>
  520. <PRE>
  521.   <A HREF="ftp://ftp.roth.net:/pub/ntperl/ODBC/970208/Bin/Win32_ODBC_Build_CORE.zip">ftp://ftp.roth.net:/pub/ntperl/ODBC/970208/Bin/Win32_ODBC_Build_CORE.zip</A></PRE>
  522. <P>or one of the other archives at that same location. See the included
  523. README for hints on installing this module manually, what to do if you
  524. get a <EM>parse exception</EM>, and a pointer to a test script for this
  525. module.</P>
  526. <P>
  527. <HR>
  528. <H1><A NAME="other documentation">OTHER DOCUMENTATION</A></H1>
  529. <P>Find a FAQ for Win32::ODBC at:</P>
  530. <PRE>
  531.   <A HREF="http://www.roth.net/odbc/odbcfaq.htm">http://www.roth.net/odbc/odbcfaq.htm</A></PRE>
  532. <P>
  533. <HR>
  534. <H1><A NAME="author">AUTHOR</A></H1>
  535. <P>Dave Roth <<A HREF="mailto:rothd@roth.net">rothd@roth.net</A>></P>
  536. <P>
  537. <HR>
  538. <H1><A NAME="credits">CREDITS</A></H1>
  539. <P>Based on original code by Dan DeMaggio <<A HREF="mailto:dmag@umich.edu">dmag@umich.edu</A>></P>
  540. <P>
  541. <HR>
  542. <H1><A NAME="disclaimer">DISCLAIMER</A></H1>
  543. <P>I do not guarantee <STRONG>ANYTHING</STRONG> with this package. If you use it you
  544. are doing so <STRONG>AT YOUR OWN RISK</STRONG>! I may or may not support this
  545. depending on my time schedule.</P>
  546. <P>
  547. <HR>
  548. <H1><A NAME="history">HISTORY</A></H1>
  549. <P>Last Modified 1999.09.25.</P>
  550. <P>
  551. <HR>
  552. <H1><A NAME="copyright">COPYRIGHT</A></H1>
  553. <P>Copyright (c) 1996-1998 Dave Roth. All rights reserved.</P>
  554. <P>Courtesy of Roth Consulting:  <A HREF="http://www.roth.net/consult/">http://www.roth.net/consult/</A></P>
  555. <P>Use under GNU General Public License. Details can be found at:
  556. <A HREF="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</A></P>
  557. <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 WIDTH=100%>
  558. <TR><TD CLASS=block VALIGN=MIDDLE WIDTH=100% BGCOLOR="#cccccc">
  559. <STRONG><P CLASS=block> Win32::ODBC - ODBC Extension for Win32</P></STRONG>
  560. </TD></TR>
  561. </TABLE>
  562.  
  563. </BODY>
  564.  
  565. </HTML>
  566.