Modified:
MYODBCShell/MYODBCShell.cpp
Log:
Modified: MYODBCShell/MYODBCShell.cpp
===================================================================
--- MYODBCShell/MYODBCShell.cpp 2006-04-20 23:10:27 UTC (rev 90)
+++ MYODBCShell/MYODBCShell.cpp 2006-04-21 03:45:19 UTC (rev 91)
@@ -249,12 +249,12 @@
SQLUINTEGER nDataWidth = 10;
SQLUINTEGER nOptimalDisplayWidth = 10;
SQLWCHAR sColumnName[MAX_DATA_WIDTH] = L"";
+ SQLSMALLINT nLabelLengthBytes = 0;
SQLColAttribute( hStm, nColumn, SQL_DESC_DISPLAY_SIZE, NULL, 0, NULL, &nDataWidth
);
- SQLColAttribute( hStm, nColumn, SQL_DESC_LABEL, sColumnName, sizeof(sColumnName),
NULL, NULL );
+ SQLColAttribute( hStm, nColumn, SQL_DESC_LABEL, sColumnName, sizeof(sColumnName),
&nLabelLengthBytes, NULL );
- QString stringColumnName( sColumnName );
- nOptimalDisplayWidth = max( stringColumnName.length(), nDataWidth );
+ nOptimalDisplayWidth = max( nLabelLengthBytes / sizeof(SQLWCHAR), nDataWidth );
if ( nMaxDataWidth > 0 )
nOptimalDisplayWidth = min( nOptimalDisplayWidth, (SQLUINTEGER)nMaxDataWidth );
@@ -284,10 +284,9 @@
return false;
}
- if ( !SQL_SUCCEEDED( SQLPrepare( hStmt, stringCommand.utf16(), stringCommand.length()
) ) )
+ if ( !SQL_SUCCEEDED( SQLPrepare( hStm, (SQLWCHAR*)stringCommand.utf16(),
stringCommand.length() ) ) )
{
if ( bVerbose ) doErrors( hEnv, hDbc, hStm );
- _ftprintf( stderr, "[MYODBCShell]ERROR: Could not SQLPrepare\n" );
*pstreamStdErr << QString( "[%1][%2][ERROR] Could not SQLPrepare." ).arg(
__FILE__ ).arg( __LINE__ ) << endl;
SQLFreeHandle( SQL_HANDLE_STMT, hStm );
hStm = NULL;
@@ -328,8 +327,7 @@
bool MYODBCShell::doHelp( const QString &stringCommand )
{
- QString stringTable;
- SQLINTEGER nRows = 0;
+ QString stringTable;
// init
if ( !hDbc )
@@ -350,7 +348,7 @@
if ( stringlist.count() > 1 )
{
QString stringTable = stringlist[1].trimmed();
- if ( !SQL_SUCCEEDED( SQLColumns( hStm, NULL, 0, NULL, 0, stringTable.utf16(),
stringTable.length(), NULL, 0 ) ) )
+ if ( !SQL_SUCCEEDED( SQLColumns( hStm, NULL, 0, NULL, 0,
(SQLWCHAR*)stringTable.utf16(), stringTable.length(), NULL, 0 ) ) )
{
if ( bVerbose ) doErrors( hEnv, hDbc, hStm );
*pstreamStdErr << QString( "[%1][%2][ERROR] Could not SQLColumns."
).arg( __FILE__ ).arg( __LINE__ ) << endl;
@@ -415,22 +413,22 @@
if ( stringCatalog != "NULL" && !stringCatalog.isNull() )
{
- psCatalog = stringCatalog.utf16();
+ psCatalog = (SQLWCHAR*)stringCatalog.utf16();
nCatalog = stringCatalog.length();
}
if ( stringSchema != "NULL" && !stringSchema.isNull() )
{
- psSchema = stringSchema.utf16();
+ psSchema = (SQLWCHAR*)stringSchema.utf16();
nSchema = stringSchema.length();
}
if ( stringTable != "NULL" && !stringTable.isNull() )
{
- psTable = stringTable.utf16();
+ psTable = (SQLWCHAR*)stringTable.utf16();
nTable = stringTable.length();
}
if ( stringTableTypes != "NULL" && !stringTableTypes.isNull() )
{
- psTableTypes = stringTableTypes.utf16();
+ psTableTypes = (SQLWCHAR*)stringTableTypes.utf16();
nTableTypes = stringTableTypes.length();
}
@@ -483,26 +481,26 @@
QString stringCatalog = stringlist.at( 0 );
QString stringSchema = stringlist.at( 1 );
QString stringTable = stringlist.at( 2 );
- QString stringTableTypes = stringlist.at( 3 );
+ QString stringColumn = stringlist.at( 3 );
if ( stringCatalog != "NULL" && !stringCatalog.isNull() )
{
- psCatalog = stringCatalog.utf16();
+ psCatalog = (SQLWCHAR*)stringCatalog.utf16();
nCatalog = stringCatalog.length();
}
if ( stringSchema != "NULL" && !stringSchema.isNull() )
{
- psSchema = stringSchema.utf16();
+ psSchema = (SQLWCHAR*)stringSchema.utf16();
nSchema = stringSchema.length();
}
if ( stringTable != "NULL" && !stringTable.isNull() )
{
- psTable = stringTable.utf16();
+ psTable = (SQLWCHAR*)stringTable.utf16();
nTable = stringTable.length();
}
if ( stringColumn != "NULL" && !stringColumn.isNull() )
{
- psColumn = stringColumn.utf16();
+ psColumn = (SQLWCHAR*)stringColumn.utf16();
nColumn = stringColumn.length();
}
@@ -540,7 +538,7 @@
if ( SQLNumResultCols( hStm, &nCols ) != SQL_SUCCESS )
{
- if ( bVerbose ) doErrors( hEnv, hDbc, hStmt );
+ if ( bVerbose ) doErrors( hEnv, hDbc, hStm );
*pstreamStdErr << QString( "[%1][%2][ERROR] Could not SQLNumResultCols."
).arg( __FILE__ ).arg( __LINE__ ) << endl;
return false;
}
@@ -596,8 +594,8 @@
{
SQLINTEGER nColumn = 0;
SQLSMALLINT nColumns = 0;
- SQLWCHAR sColumnName[MAX_DATA_WIDTH] = "";
- QString stringBuffer;
+ SQLWCHAR sColumnName[MAX_DATA_WIDTH] = L"";
+ QString stringFormatBuffer;
QString stringNameLine;
SQLUINTEGER nChar;
@@ -609,35 +607,35 @@
for ( nColumn = 1; nColumn <= nColumns; nColumn++ )
{
- if ( !SQL_SUCCEEDED( SQLColAttribute( hStm, nColumn, SQL_DESC_LABEL, sColumnName,
sizeof(sColumnName), NULL, NULL ) && bVerbose ) )
+ if ( !SQL_SUCCEEDED( SQLColAttribute( hStm, nColumn, SQL_DESC_LABEL, sColumnName,
sizeof(sColumnName), NULL, NULL ) ) && bVerbose )
doErrors( NULL, NULL, hStm );
/* SEP */
stringSepLine += "+";
- for ( nChar=0; nChar <= vectorOptimalDisplayWidth[nColumn]; nChar++ )
stringSepLine += "-";
+ for ( nChar=0; nChar <= vectorOptimalDisplayWidths[nColumn]; nChar++ )
stringSepLine += "-";
/* HDR */
-// stringNameLine += stringBuffer.sprintf( "| %-*.*s", nOptimalDisplayWidth,
nOptimalDisplayWidth, sColumnName );
- stringNameLine += QString::sprintf( "| %-*.*s",
vectorOptimalDisplayWidth[nColumn], vectorOptimalDisplayWidth[nColumn], sColumnName );
+ stringNameLine += stringFormatBuffer.sprintf( "| %-*.*s",
vectorOptimalDisplayWidths[nColumn], vectorOptimalDisplayWidths[nColumn], sColumnName );
}
stringSepLine += "+";
stringNameLine += "|";
- streamStdOut << stringSepLine << endl;
- streamStdOut << stringNameLine << endl;
- streamStdOut << stringSepLine << endl;
+ *pstreamStdOut << stringSepLine << endl;
+ *pstreamStdOut << stringNameLine << endl;
+ *pstreamStdOut << stringSepLine << endl;
return true;
}
-SQLINTEGER doBodyNormal()
+SQLINTEGER MYODBCShell::doBodyNormal()
{
SQLINTEGER nColumn = 0;
SQLSMALLINT nColumns = 0;
SQLINTEGER nIndicator = 0;
- SQLWCHAR sColumnValue[MAX_DATA_WIDTH] = "";
+ SQLWCHAR sColumnValue[MAX_DATA_WIDTH] = L"";
SQLRETURN nReturn = 0;
SQLINTEGER nRows = 0;
+ QString stringFormatBuffer;
if ( !SQL_SUCCEEDED( SQLNumResultCols( hStm, &nColumns ) ) )
nColumns = -1;
@@ -652,7 +650,7 @@
nReturn = SQLGetData( hStm, nColumn, SQL_C_CHAR, (SQLPOINTER)sColumnValue,
sizeof(sColumnValue), &nIndicator );
if ( SQL_SUCCEEDED( nReturn ) && nIndicator != SQL_NULL_DATA )
{
- streamStdOut << QString::sprintf( "| %-*.*s",
vectorOptimalDisplayWidth[nColumn], vectorOptimalDisplayWidth[nColumn], QString(
sColumnValue ) );
+ *pstreamStdOut << stringFormatBuffer.sprintf( "| %-*.*s",
vectorOptimalDisplayWidths[nColumn], vectorOptimalDisplayWidths[nColumn], sColumnValue );
}
else if ( nReturn == SQL_ERROR )
{
@@ -660,13 +658,13 @@
}
else
{
- streamStdOut << QString::sprintf( "| %-*s",
vectorOptimalDisplayWidth[nColumn], "" );
+ *pstreamStdOut << stringFormatBuffer.sprintf( "| %-*s",
vectorOptimalDisplayWidths[nColumn], "" );
}
} /* for columns */
nRows++;
- streamStdOut << "|" << endl;
+ *pstreamStdOut << "|" << endl;
nReturn = SQLFetch( hStm );
} /* while rows */
@@ -683,15 +681,15 @@
{
SQLINTEGER nRowsAffected = -1;
- streamStdOut << stringSepLine << endl;
+ *pstreamStdOut << stringSepLine << endl;
if ( SQLRowCount( hStm, &nRowsAffected ) != SQL_SUCCESS )
{
if ( bVerbose ) doErrors( hEnv, hDbc, hStm );
}
- streamStdOut << nRowsAffected << " rows affected" << endl;
- streamStdOut << nRows << " rows fetched" << endl;
+ *pstreamStdOut << nRowsAffected << " rows affected" << endl;
+ *pstreamStdOut << nRows << " rows fetched" << endl;
return true;
}
@@ -699,10 +697,10 @@
bool MYODBCShell::doHeaderHTMLTable()
{
SQLSMALLINT nColumns = 0;
- SQLWCHAR sColumnName[MAX_DATA_WIDTH] = "";
+ SQLWCHAR sColumnName[MAX_DATA_WIDTH] = L"";
- streamStdOut << "<table BORDER>" << endl;
- streamStdOut << "<tr BGCOLOR=#000099>" << endl;
+ *pstreamStdOut << "<table BORDER>" << endl;
+ *pstreamStdOut << "<tr BGCOLOR=#000099>" << endl;
if ( !SQL_SUCCEEDED( SQLNumResultCols( hStm, &nColumns ) ) )
nColumns = -1;
@@ -710,13 +708,13 @@
for ( SQLINTEGER nColumn = 1; nColumn <= nColumns; nColumn++ )
{
SQLColAttribute( hStm, nColumn, SQL_DESC_LABEL, sColumnName, sizeof(sColumnName),
NULL, NULL );
- streamStdOut << "<td>" << endl;
- streamStdOut << "<font face=Arial,Helvetica><font
color=#FFFFFF>" << endl;
- streamStdOut << QString( sColumnName ) << endl;
- streamStdOut << "</font></font>" << endl;
- streamStdOut << "</td>" << endl;
+ *pstreamStdOut << "<td>" << endl;
+ *pstreamStdOut << "<font face=Arial,Helvetica><font
color=#FFFFFF>" << endl;
+ *pstreamStdOut << QString::fromStdWString( sColumnName ) << endl;
+ *pstreamStdOut << "</font></font>" << endl;
+ *pstreamStdOut << "</td>" << endl;
}
- streamStdOut << "</tr>" << endl;
+ *pstreamStdOut << "</tr>" << endl;
return true;
}
@@ -732,37 +730,38 @@
while ( SQLFetch( hStm ) != SQL_SUCCESS )
{
- streamStdOut << "<tr>" << endl;
+ *pstreamStdOut << "<tr>" << endl;
for ( SQLINTEGER nColumn = 1; nColumn <= nColumns; nColumn++ )
{
SQLINTEGER nIndicator = 0;
- SQLWCHAR sColumnValue[MAX_DATA_WIDTH] = "";
+ SQLWCHAR sColumnValue[MAX_DATA_WIDTH] = L"";
- streamStdOut << "<td>" << endl;
- streamStdOut << "<font face=Arial,Helvetica>" << endl;
+ *pstreamStdOut << "<td>" << endl;
+ *pstreamStdOut << "<font face=Arial,Helvetica>" << endl;
nReturn = SQLGetData( hStm, nColumn, SQL_C_CHAR, (SQLPOINTER)sColumnValue,
sizeof(sColumnValue), &nIndicator );
if ( SQL_SUCCEEDED( nReturn ) && nIndicator != SQL_NULL_DATA )
{
- streamStdOut << QString( sColumnValue ) << endl;
+// *pstreamStdOut << QString::fromStdWString( sColumnValue )
<< endl;
+ *pstreamStdOut << sColumnValue;
}
else if ( nReturn == SQL_ERROR )
{
- streamStdOut << endl;
+ *pstreamStdOut << endl;
if ( bVerbose ) doErrors( NULL, NULL, hStm );
bReturn = false;
break;
}
else
- streamStdOut << endl;
+ *pstreamStdOut << endl;
- streamStdOut << "</font>" << endl;
- streamStdOut << "</td>" << endl;
+ *pstreamStdOut << "</font>" << endl;
+ *pstreamStdOut << "</td>" << endl;
}
if ( !bReturn )
break;
- streamStdOut << "</tr>" << endl;
+ *pstreamStdOut << "</tr>" << endl;
}
return bReturn;
@@ -770,14 +769,14 @@
bool MYODBCShell::doFooterHTMLTable()
{
- streamStdOut << "</table>" << endl;
+ *pstreamStdOut << "</table>" << endl;
return true;
}
bool MYODBCShell::doHeaderDelimited()
{
SQLSMALLINT nColumns = 0;
- SQLWCHAR sColumnName[MAX_DATA_WIDTH] = "";
+ SQLWCHAR sColumnName[MAX_DATA_WIDTH] = L"";
if ( !SQL_SUCCEEDED( SQLNumResultCols( hStm, &nColumns ) ) )
nColumns = -1;
@@ -785,11 +784,11 @@
for ( SQLINTEGER nColumn = 1; nColumn <= nColumns; nColumn++ )
{
SQLColAttribute( hStm, nColumn, SQL_DESC_LABEL, sColumnName, sizeof(sColumnName),
NULL, NULL );
- streamStdOut << sColumnName;
+ *pstreamStdOut << sColumnName;
if ( nColumn < nColumns )
- streamStdOut << cDelimiter;
+ *pstreamStdOut << cDelimiter;
}
- streamStdOut << endl;
+ *pstreamStdOut << endl;
return true;
}
@@ -808,18 +807,19 @@
for ( SQLINTEGER nColumn = 1; nColumn <= nColumns; nColumn++ )
{
SQLINTEGER nIndicator = 0;
- SQLWCHAR sColumnValue[MAX_DATA_WIDTH] = "";
+ SQLWCHAR sColumnValue[MAX_DATA_WIDTH] = L"";
nReturn = SQLGetData( hStm, nColumn, SQL_C_CHAR, (SQLPOINTER)sColumnValue,
sizeof(sColumnValue), &nIndicator );
if ( SQL_SUCCEEDED( nReturn ) && nIndicator != SQL_NULL_DATA )
{
- streamStdOut << QString( sColumnValue );
+// *pstreamStdOut << QString::fromStdWString( sColumnValue );
+ *pstreamStdOut << sColumnValue;
if ( nColumn < nColumns )
- streamStdOut << cDelimiter;
+ *pstreamStdOut << cDelimiter;
}
else if ( nReturn == SQL_ERROR )
{
- streamStdOut << endl;
+ *pstreamStdOut << endl;
if ( bVerbose ) doErrors( NULL, NULL, hStm );
bReturn = false;
break;
@@ -827,12 +827,12 @@
else
{
if ( nColumn < nColumns )
- streamStdOut << cDelimiter;
+ *pstreamStdOut << cDelimiter;
}
}
if ( !bReturn )
break;
- streamStdOut << endl;
+ *pstreamStdOut << endl;
}
return bReturn;
@@ -858,7 +858,7 @@
&nTextLength )) )
{
sState[5] = '\0';
- streamStdErr << "[" << sState << "]" << sMessageText
<< endl;
+ *pstreamStdErr << "[" << sState << "]" <<
sMessageText << endl;
nRecord++;
}
}
@@ -869,14 +869,14 @@
while ( SQL_SUCCEEDED(SQLGetDiagRec( SQL_HANDLE_DBC,
hDbc,
nRecord,
- szState,
+ sState,
&nNativeError,
- szMessageText,
+ sMessageText,
SQL_MAX_MESSAGE_LENGTH,
&nTextLength )) )
{
- szState[5] = '\0';
- streamStdErr << "[" << sState << "]" << sMessageText
<< endl;
+ sState[5] = '\0';
+ *pstreamStdErr << "[" << sState << "]" <<
sMessageText << endl;
nRecord++;
}
}
@@ -887,14 +887,14 @@
while ( SQL_SUCCEEDED(SQLGetDiagRec( SQL_HANDLE_ENV,
hEnv,
nRecord,
- szState,
+ sState,
&nNativeError,
- szMessageText,
+ sMessageText,
SQL_MAX_MESSAGE_LENGTH,
&nTextLength )) )
{
- szState[5] = '\0';
- streamStdErr << "[" << sState << "]" << sMessageText
<< endl;
+ sState[5] = '\0';
+ *pstreamStdErr << "[" << sState << "]" <<
sMessageText << endl;
nRecord++;
}
}
| Thread |
|---|
| • Connector/ODBC 5 commit: r91 - MYODBCShell | pharvey | 21 Apr |