簡體   English   中英

在String的and處附加一個數值

[英]Appending an numeric value at the and of String

我試圖在表中插入多個插入。 為此,我創建了一個int列表並使用for循環函數進行插入,但我無法編寫我想做的正確代碼。 我需要這樣的東西

for(i=0;i<1800;i++)
{

    retcode =  SQLPrepare(hstmt,(SQLCHAR *)"insert into dbo.vivtest values(i)",SQL_NTS);
    if (retcode != SQL_SUCCESS)
        {
            printf("Error in SQLPrepare - insert\n");
            odbc_Error(henv,hdbc,hstmt);
            getch();
        }
    else
        printf("Successfull execution of  %d th  Prepare\n",i);

每次都給我錯誤。

以下是有關SQLPrepare()以及如何綁定參數的有用鏈接。 綁定參數是將變量內容插入SQL字符串的一種安全方法,並且以這種方式創建的預備語句也是多次執行語句的有效方法。

http://msdn.microsoft.com/zh-cn/library/windows/desktop/ms716365(v=vs.85).aspx

它提供了將參數綁定到SQL查詢的示例。 給出以下示例:

SQLPrepare(hstmt, "UPDATE Parts SET Price = ? WHERE PartID = ?", SQL_NTS);

在SQL字符串中您可以看到幾個? (問號)。 這些就像SQL字符串中的占位符,然后您可以將其“綁定到”(即,用變量內容代替)。

繼續MSDN示例...

SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_FLOAT, SQL_REAL, 7, 0,
                  &Price, 0, &PriceInd);
SQLBindParameter(hstmt, 2, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 10, 0,
                  &PartID, 0, &PartIDInd);

第一個語句用變量Price的浮點值替換第一個問號,第二個綁定用PartID變量中的整數替換第二個問號。

您的prepare語句可能看起來像...

SQLINTEGER    iInd;
SQLUINTEGER   i;
...
...
retcode =  SQLPrepare(hstmt,(SQLCHAR *)"insert into dbo.vivtest values(?)",SQL_NTS);
...
...
SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 10, 0,
              &i, 0, &iInd);

您應該使用SQL Parameterssprintf()

最好是前者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM