2013-07-09 9 views
1

Я использую Xojo 2013 версии 1. Я пытаюсь удалить запись из базы данных SQLite. Но я терплю неудачу. Вместо того, чтобы удалять запись, она по какой-то причине ее дублирует.XOJO удалить запись из базы данных SQLite

Вот код, который я использую:

command = "DELETE * from names where ID = 10" 

namesDB.SQLExecute(command) 

Я динамически генерировать команду. но, тем не менее, я меняю его, он всегда делает то же самое. Тот же результат с кавычками или без них.

Любые идеи?

+0

Вы пытались удалить '*'? –

+0

Да, у меня есть. такие же результаты – EnterpriseXL

+0

Вы когда-нибудь выясняли, в чем проблема? –

ответ

2

Самое первое, что я хотел бы сделать, это проверить, не возникла ли ошибка.

if namesDB.Error then 
    dim s as string = namesDB.errorMessage 
    msgbox s 
    return 
end 

Он скажет вам, есть ли ошибка базы данных и какая ошибка. Если ошибок нет, проблема кроется в другом месте.

FWIW, всегда, всегда, всегда проверяйте бит ошибки после каждой операции db. В отличие от других языков, Xojo НЕ генерирует/исключает исключение, если есть ошибка базы данных, поэтому вам решать проверить ее.

1

Попробуйте позвонить Commit().

Я только что сделал образец базы данных SQLite с таблицей «имена», и этот код работал отлично:

db.SQLExecute("Delete from names where ID=2") 
db.Commit 

Я сделал много работы с XOJO и SQLite, и они хорошо работают вместе. Я никогда не видел, чтобы запись была воспроизведена ошибочно, как вы сообщаете. Это очень странно. Если это не поможет, напишите больше своего кода. Например, я полагаю, ваш «команда» переменная является String, но может быть, это вариант, и т.д.

+0

Я трачу время и время и тот же результат. это именно то, что происходит. скажем, у меня ID = 3, и я его удаляю ... он ушел, однако новая запись (с теми же данными) создается на 4-й позиции, а три - нет. Я жестко закодировал командную строку ... динамически конвертировал ее ... То же самое по какой-то причине. – EnterpriseXL

0

Я думаю, что на SQLite вам не нужно * между DELETE и FROM.

Смежные вопросы