こんにちは私は&という文字を含むフィールドデータを持っていますが、そのデータが読み込まれてからAzure SQLデータベース&のシンボルは&
に置き換えられますので、データは1&2
です。Azureがこれをやっているのはなぜですか?SQL Azureデータベースに挿入すると、SQLデータフィールドの&文字の可変データに&が読み込まれます
strcpy(s, "select ta.Tank_Id, ta.Fish_Id, ta.Date_Assigned, t.Group_Name from Tank_Assignment as ta join Tank as t on t.Tank_Id = ta.Tank_Id join Tank_Group as tg on tg.Group_Name = t.Group_Name where ta.Date_UnAssigned is null");
sprintf(&s[strlen(s)], " and tg.Site_Name = '%s' ORDER BY ta.Tank_Id", Site_Name);
sql->exec_direct(s);
if (!sql->success() && sql->ret != 100) {
DisplaySQLError(hW, sql, s);
}
while (sql->success() && sql->fetch() == MSQL_SUCCESS) {
sql->get_col_str("Tank_Id", sTank_Id);
sql->get_col_str("Fish_Id", sFish_Id);
sql->get_col_str("Date_Assigned", sDate_Assigned);
sql->get_col_str("Group_Name", sGroup_Name);
strcpy(s, "insert into sqlazure.ha.dbo.itank");
strcat(s, " (Tank_Id,Fish_Id,Date_Assigned,Feed,Morts,Moved,Enviro,Weight,Group_Name,User_Id) ");
sprintf(&s[strlen(s)], " VALUES('%s',", sTank_Id);
sprintf(&s[strlen(s)], " '%s',", sFish_Id);
sprintf(&s[strlen(s)], " '%s',", sDate_Assigned);
sprintf(&s[strlen(s)], " '%s',", "null");
sprintf(&s[strlen(s)], " '%s',", "null");
sprintf(&s[strlen(s)], " '%s',", "null");
sprintf(&s[strlen(s)], " '%s',", "null");
sprintf(&s[strlen(s)], " '%s',", "null");
sprintf(&s[strlen(s)], " '%s',", sGroup_Name);
sprintf(&s[strlen(s)], " '%s')", _szUsername);
sql2->exec_direct(s);
if (!sql2->success() && sql2->ret != 100) {
DisplaySQLError(hW, sql, s);
}
}
sql->end_fetch();
これは私のsave with SQL文が正しくSQL 2106データベースエンジンに置かれていますが、SQL Azureに保存されたときに変更されているので、違いがあります。sql azureはそれを変更しています。それを修正する方法について私は答えが必要です。 –
@RobertPeterBronsteinあなたのステートメントは、すべての文字列**を逃げ出さないようにXMLコンテナ内で送信することができます。もう一度:私はかなり確信しています。この問題は、送信側(ステートメントの作成場所)ではなく、読者側(ステートメントが解釈される側)で解決されなければならないということです。 – Shnugo
グリッドビューであることが判明しましたが、データベースではわかりません。 –