Edit C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86\odbc\7.0.1\help\reference\bulk.11.3.html
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <!-- MOTW-DISABLED saved from url=(0014)about:internet --> <title>Utility Functions</title> <link rel="StyleSheet" href="css/bulk.css" type="text/css" media="all" /> <link rel="StyleSheet" href="css/webworks.css" type="text/css" media="all" /> <script type="text/javascript" language="JavaScript1.2" src="wwhdata/common/context.js"></script> <script type="text/javascript" language="JavaScript1.2" src="wwhdata/common/towwhdir.js"></script> <script type="text/javascript" language="JavaScript1.2" src="wwhdata/common/wwhpagef.js"></script> <script type="text/javascript" language="JavaScript1.2"> <!-- var WebWorksRootPath = ""; // --> </script> <script type="text/javascript" language="JavaScript1.2"> <!-- // Set reference to top level help frame // var WWHFrame = WWHGetWWHFrame("", true); // --> </script> <script type="text/javascript" language="JavaScript1.2" src="scripts/expand.js"></script> </head> <body class="" style="background-color: #FFFFEE;" onload="WWHUpdate();" onunload="WWHUnload();" onkeydown="WWHHandleKeyDown((document.all||document.getElementById||document.layers)?event:null);" onkeypress="WWHHandleKeyPress((document.all||document.getElementById||document.layers)?event:null);" onkeyup="WWHHandleKeyUp((document.all||document.getElementById||document.layers)?event:null);"> <br /> <div class="WebWorks_Breadcrumbs" style="text-align: left;"> <a class="WebWorks_Breadcrumb_Link" href="bulk.11.1.html#137321">9 DataDirect Bulk Load</a> : Utility Functions</div> <hr align="left" /> <blockquote> <div class="head_1"><a name="137321">Utility Functions</a></div> <div class="Body"><a name="141972">The example code in this section shows utility functions to which the DataDirect functions </a>for bulk exporting, verification, and bulk loading refer, as well as the DataDirect functions GetBulkDiagRec and GetBulkDiagRecW. </div> <div class="head_2"><a name="137402">GetBulkDiagRec and GetBulkDiagRecW</a></div> <div class="gutter_text_right"><a name="137405">Syntax</a></div> <div class="syntax_first"><a name="137406">SQLReturn</a></div> <div class="syntax"><a name="137408">GetBulkDiagRec</a> (SQLSMALLINT HandleType,</div> <div class="syntax"><a name="137409"> </a> SQLHANDLE Handle,</div> <div class="syntax"><a name="137410"> </a> SQLSMALLINT RecNumber,</div> <div class="syntax"><a name="137411"> </a> SQLCHAR* Sqlstate,</div> <div class="syntax"><a name="137412"> </a> SQLINTEGER* NativeError,</div> <div class="syntax"><a name="137413"> </a> SQLCHAR* MessageText,</div> <div class="syntax"><a name="141425"> </a> SQLSMALLINT BufferLength,</div> <div class="syntax"><a name="141426"> </a> SQLSMALLINT* TextLength);</div> <div class="syntax_first"><a name="141488">GetBulkDiagRecW</a> (SQLSMALLINT HandleType,</div> <div class="syntax"><a name="141489"> </a> SQLHANDLE Handle,</div> <div class="syntax"><a name="141490"> </a> SQLSMALLINT RecNumber,</div> <div class="syntax"><a name="141491"> </a> SQLWCHAR* Sqlstate,</div> <div class="syntax"><a name="141492"> </a> SQLINTEGER* NativeError,</div> <div class="syntax"><a name="141493"> </a> SQLWCHAR* MessageText,</div> <div class="syntax"><a name="141494"> </a> SQLSMALLINT BufferLength,</div> <div class="syntax"><a name="141495"> </a> SQLSMALLINT* TextLength);</div> <div class="Body"><a name="137423">The standard ODBC return codes are returned: SQL_SUCCESS, </a>SQL_SUCCESS_WITH_INFO, SQL_INVALID_HANDLE, SQL_NO_DATA, and SQL_ERROR.</div> <div class="gutter_text_right"><a name="137424">Description</a></div> <div class="Body"><a name="137425">GetBulkDiagRec (ANSI application) and GetBulkDiagRecW (Unicode application) return </a>errors and warnings generated by bulk operations. The argument definition, return values, and function behavior is the same as for the standard ODBC SQLGetDiagRec and SQLGetDiagRecW functions with the following exceptions:</div> <div class="list_bulleted_outer" style="margin-left: 0pt;"> <table border="0" cellspacing="0" cellpadding="0" summary=""> <tr style="vertical-align: baseline;"> <td> <div class="list_bulleted_inner" style="width: 18pt; white-space: nowrap;">â? </div> </td> <td width="100%"> <div class="list_bulleted_inner"><a name="141524">The GetBulkDiagRec and GetBulkDiagRecW functions can be called after a bulk load, </a>export or validate function is invoked to retrieve any error messages generated by the bulk operation. Calling these functions after any function except a bulk function is not recommended.</div> </td> </tr> </table> </div> <div class="list_bulleted_outer" style="margin-left: 0pt;"> <table border="0" cellspacing="0" cellpadding="0" summary=""> <tr style="vertical-align: baseline;"> <td> <div class="list_bulleted_inner" style="width: 18pt; white-space: nowrap;">â? </div> </td> <td width="100%"> <div class="list_bulleted_inner"><a name="141658">The values returned in the Sqlstate and MessageText buffers by the GetBulkDiagRecW </a>function are encoded as UTF-16 on Windows platforms. On UNIX and Linux platforms, the values returned for Sqlstate and MessageText are UTF-16 if the value of the SQL_ATTR_APP_UNICODE_TYPE is SQL_DD_CP_UTF16 and UTF-8 if the value of SQL_ATTR_APP_UNICODE_TYPE is SQL_DD_CP_UTF8.</div> </td> </tr> </table> </div> <div class="list_bulleted_outer" style="margin-left: 0pt;"> <table border="0" cellspacing="0" cellpadding="0" summary=""> <tr style="vertical-align: baseline;"> <td> <div class="list_bulleted_inner" style="width: 18pt; white-space: nowrap;">â? </div> </td> <td width="100%"> <div class="list_bulleted_inner"><a name="141662">The handle passed as the Handle argument must be a driver connection handle </a>obtained by calling SQLGetInfo (<ODBC Conn Handle>, SQL_DRIVER_HDBC).</div> </td> </tr> </table> </div> <div class="list_bulleted_outer" style="margin-left: 0pt;"> <table border="0" cellspacing="0" cellpadding="0" summary=""> <tr style="vertical-align: baseline;"> <td> <div class="list_bulleted_inner" style="width: 18pt; white-space: nowrap;">â? </div> </td> <td width="100%"> <div class="list_bulleted_inner"><a name="141666">SQL_HANDLE_DBC is the only value accepted for HandleType. Any other value </a>causes an error to be returned.</div> </td> </tr> </table> </div> <div class="head_3"><a name="141867">Example</a></div> <div class="syntax_first"><a name="125714">#include "qesqlext.h"</a></div> <div class="syntax"><a name="125715"> </a></div> <div class="syntax"><a name="125716">#ifndef NULL</a></div> <div class="syntax"><a name="125717">#define NULL 0</a></div> <div class="syntax"><a name="125718">#endif</a></div> <div class="syntax"><a name="125719"> </a></div> <div class="syntax"><a name="125720">#if (! defined (_WIN32)) && (! defined (_WIN64))</a></div> <div class="syntax"><a name="125721">typedef void * HMODULE;</a></div> <div class="syntax"><a name="125722">#endif</a></div> <div class="syntax"><a name="125723"> </a></div> <div class="syntax"><a name="125724">/* Get the address of a routine in a shared library or DLL. */</a></div> <div class="syntax"><a name="125725">void * resolveName (</a></div> <div class="syntax"><a name="125726"> </a> HMODULE hmod,</div> <div class="syntax"><a name="125727"> </a> const char *name)</div> <div class="syntax"><a name="125728">{</a></div> <div class="syntax"><a name="125729">#if defined (_WIN32) || defined (_WIN64)</a></div> <div class="syntax"><a name="125730"> </a></div> <div class="syntax"><a name="125731"> </a> return GetProcAddress (hmod, name);</div> <div class="syntax"><a name="125732">#elif defined (hpux)</a></div> <div class="syntax"><a name="125733"> </a> void *routine = shl_findsym (hmod, name);</div> <div class="syntax"><a name="125734"> </a></div> <div class="syntax"><a name="125735"> </a> shl_findsym (hmod, name, TYPE_PROCEDURE, &routine);</div> <div class="syntax"><a name="125736"> </a></div> <div class="syntax"><a name="125737"> </a> return routine;</div> <div class="syntax"><a name="125738">#else</a></div> <div class="syntax"><a name="125739"> </a> return dlsym (hmod, name);</div> <div class="syntax"><a name="125740">#endif</a></div> <div class="syntax"><a name="136669">}</a></div> <div class="syntax"><a name="136837"> </a></div> <div class="syntax"><a name="136843">/* Get errors directly from the driver's connection handle. */</a></div> <div class="syntax"><a name="136838">void driverError (void *driverHandle, HMODULE hmod)</a></div> <div class="syntax"><a name="136839">{</a></div> <div class="syntax"><a name="125746"> </a> UCHAR sqlstate[16];</div> <div class="syntax"><a name="125747"> </a> UCHAR errmsg[SQL_MAX_MESSAGE_LENGTH * 2];</div> <div class="syntax"><a name="125748"> </a> SDWORD nativeerr;</div> <div class="syntax"><a name="125749"> </a> SWORD actualmsglen;</div> <div class="syntax"><a name="125750"> </a> RETCODE rc;</div> <div class="syntax"><a name="125751"> </a> SQLSMALLINT i;</div> <div class="syntax"><a name="136914"> </a> PGetBulkDiagRec getBulkDiagRec;</div> <div class="syntax"><a name="136915"> </a></div> <div class="syntax"><a name="136916"> </a> getBulkDiagRec = (PGetBulkDiagRec)</div> <div class="syntax"><a name="136917"> </a> resolveName (hmod, "GetBulkDiagRec");</div> <div class="syntax"><a name="136918"> </a></div> <div class="syntax"><a name="136919"> </a> if (! getBulkDiagRec) {</div> <div class="syntax"><a name="136920"> </a> printf ("Cannot find GetBulkDiagRec!\n");</div> <div class="syntax"><a name="136921"> </a> return;</div> <div class="syntax"><a name="136922"> </a> }</div> <div class="syntax"><a name="136923"> </a></div> <div class="syntax"><a name="136924"> </a></div> <div class="syntax"><a name="136925"> </a> i = 1;</div> <div class="syntax"><a name="136926">loop:</a> rc = (*getBulkDiagRec) (SQL_HANDLE_DBC,</div> <div class="syntax"><a name="136927"> </a> driverHandle, i++,</div> <div class="syntax"><a name="136928"> </a> sqlstate, &nativeerr, errmsg,</div> <div class="syntax"><a name="136929"> </a> SQL_MAX_MESSAGE_LENGTH - 1, &actualmsglen);</div> <div class="syntax"><a name="136930"> </a></div> <div class="syntax"><a name="136981"> </a> if (rc == SQL_ERROR) {</div> <div class="syntax"><a name="136982"> </a> printf ("GetBulkDiagRec failed!\n");</div> <div class="syntax"><a name="136983"> </a> return;</div> <div class="syntax"><a name="136984"> </a> }</div> <div class="syntax"><a name="136935"> </a></div> <div class="syntax"><a name="136936"> </a> if (rc == SQL_NO_DATA_FOUND) return;</div> <div class="syntax"><a name="136937"> </a></div> <div class="syntax"><a name="136938"> </a> printf ("SQLSTATE = %s\n", sqlstate);</div> <div class="syntax"><a name="136939"> </a> printf ("NATIVE ERROR = %d\n", nativeerr);</div> <div class="syntax"><a name="136940"> </a> errmsg[actualmsglen] = '\0';</div> <div class="syntax"><a name="136941"> </a> printf ("MSG = %s\n\n", errmsg);</div> <div class="syntax"><a name="136942"> </a> goto loop;</div> <div class="syntax"><a name="136943">}</a></div> <script type="text/javascript" language="JavaScript1.2"> <!-- // Clear related topics // WWHClearRelatedTopics(); document.writeln(WWHRelatedTopicsInlineHTML()); // --> </script> </blockquote> <script type="text/javascript" language="JavaScript1.2"> <!-- document.write(WWHRelatedTopicsDivTag() + WWHPopupDivTag() + WWHALinksDivTag()); // --> </script> </body> </html>
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de