Started adding support for SELECT statement.

git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@642 0109f412-320b-0410-ab79-c3e0c5ffbbe6
This commit is contained in:
dsandersoremutah
2006-07-10 23:10:01 +00:00
parent 0b1c41a805
commit 91816d4c49
14 changed files with 1108 additions and 191 deletions

View File

@@ -103,11 +103,13 @@ RCODE SQLStatement::getToken(
char * pszToken,
FLMUINT uiTokenBufSize,
FLMBOOL bEofOK,
FLMUINT * puiTokenLineOffset)
FLMUINT * puiTokenLineOffset,
FLMUINT * puiTokenLen)
{
RCODE rc = NE_SFLM_OK;
FLMUINT uiOffset;
char cChar;
char * pszTokenStart = pszToken;
// Always leave room for a null terminating character
@@ -283,6 +285,11 @@ RCODE SQLStatement::getToken(
}
}
if (puiTokenLen)
{
*puiTokenLen = (FLMUINT)(pszToken - pszTokenStart);
}
Exit:
return( rc);
@@ -301,7 +308,7 @@ RCODE SQLStatement::haveToken(
FLMUINT uiTokenLineOffset;
if (RC_BAD( rc = getToken( szToken, sizeof( szToken), bEofOK,
&uiTokenLineOffset)))
&uiTokenLineOffset, NULL)))
{
if (rc == NE_SFLM_EOF_HIT)
{
@@ -2040,11 +2047,18 @@ RCODE SQLStatement::executeSQL(
for (;;)
{
if (RC_BAD( rc = getToken( szToken, sizeof( szToken), TRUE,
&uiTokenLineOffset)))
&uiTokenLineOffset, NULL)))
{
goto Exit;
}
if (f_stricmp( szToken, "insert") == 0)
if (f_stricmp( szToken, "select") == 0)
{
if (RC_BAD( rc = processSelect()))
{
goto Exit;
}
}
else if (f_stricmp( szToken, "insert") == 0)
{
if (RC_BAD( rc = processInsertRow()))
{
@@ -2079,7 +2093,7 @@ RCODE SQLStatement::executeSQL(
else if (f_stricmp( szToken, "create") == 0)
{
if (RC_BAD( rc = getToken( szToken, sizeof( szToken), FALSE,
&uiTokenLineOffset)))
&uiTokenLineOffset, NULL)))
{
goto Exit;
}
@@ -2130,7 +2144,7 @@ RCODE SQLStatement::executeSQL(
else if (f_stricmp( szToken, "drop") == 0)
{
if (RC_BAD( rc = getToken( szToken, sizeof( szToken), FALSE,
&uiTokenLineOffset)))
&uiTokenLineOffset, NULL)))
{
goto Exit;
}