Классический ASP: выполнить 2 оператора обновления в одной функции - PullRequest
0 голосов
/ 17 декабря 2010

Я пишу классическую ASP-программу. В одной функции мне нужно использовать 2 оператора обновления для одной таблицы в одной функции.Первый оператор - это обновление количества счета-фактуры, а второй оператор обновления - на основе этого количества заказа на покупку и количества заявки на закупку, мне нужно обновить одно поле флага.Могу ли я написать в той же функции, как показано ниже:

   SET RS = app.Execute("SELECT PRInvoiceNo, Quantity FROM PurchaseOrderDetails WHERE CoID='" & param & "'")
   do while RS.EOF=false
       app.Execute("UPDATE PurchaseRequisitionDetails SET PO_Quantity = PO_Quantity + " & RS("Quantity") & " WHERE CoID='" & param & "' AND PRInvoiceNo = '" & RS("PRInvoiceNo") & "'")
        app.Execute("UPDATE PurchaseRequisitionDetails SET FullyPaidFlag=CASE WHEN PO_Quantity >= Quantity THEN 1 ELSE 0 END  WHERE CoID='" & param & "' AND PRInvoiceNo = '" & RS("PRInvoiceNo") & "'")
   RS.MoveNext
   loop

Проблема в цикле, первый оператор работает правильно.Второй не работает.Что это может быть?Могу я это сделать или нет?

1 Ответ

1 голос
/ 17 декабря 2010

Ну, мне пора, но обязательно проверьте следующее:

  1. Response.Write (RS.RecordCount) - есть ли записи?Или выполните Response.Write ("привет") внутри цикла, чтобы убедиться.
  2. Убедитесь, что RS ("Количество"), параметр и т. Д. Не равны нулю.Если это так, ваша конкатенация строк приведет к пустой строке.

Также, пожалуйста, пожалуйста, не забудьте экранировать ваши переменные!

Replace(param, "'", "''")

Спокойной ночи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...