обновить вставку msaccess - PullRequest
3 голосов
/ 03 июля 2010

Я хочу обновить или вставить, если отсутствует в базе данных msaccess, используя asp.

Я пытался что-то вроде:

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
    UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
    INSERT INTO Table1 VALUES (...)

и

UPDATE Table1 SET (...) WHERE Column1='SomeValue'
IF @@ROWCOUNT=0
    INSERT INTO Table1 VALUES (...)

INSERTили ОБНОВЛЕНИЕ сами по себе работают нормально.но когда я использую оба с одним из методов, это терпит неудачу.

Ответы [ 2 ]

1 голос
/ 03 июля 2010

Вы не можете запустить два оператора SQL одновременно в Access.Вы должны обновить и вставить две отдельные операции.

0 голосов
/ 06 июля 2010
Set db = CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
        db.Open "DSN=name"
        rs.CursorLocation = 3
        rs.Open "SELECT * FROM Table WHERE Field="&Variable, db, 3, 3
        if rs.EOF then
        rs.AddNew
        end if
            rs("fieldName1") = Variable1
            rs("fieldName2") = Variable2
            rs("fieldName3") = Variable3
        rs.Update
        rs.Close

, если SELECT ничего не возвращает, он добавляет запись.после добавления курсор находится на добавленной записи.если SELECT возвращает запись (поскольку поле уникально), курсор находится на выбранной записи.

и затем обновляет запись, где находится курсор:)

...