|
|
|
| Нашёл ошибку в SQL- запросе, который при этом работал как надо:
strSQL = "INSERT INTO [table]([field]) " & _
"VALUES ('" & "text " & var & " (text2" & var2 & ")');"
|
Вот "правильный" синтаксис
strSQL = "INSERT INTO [table]([field]) " & _
"VALUES ('" & "text " & var & " (text2" & var2 & ")" & "');"
|
Результат в обоих случаях: text var (text2 var2)
Т.е. почему: ")" & "') = ")') ??? А может и не баг вовсе..
PS. Захожу на этот замечательный форум, начинаю вникать в свежие темы и забываю, что вообще хотел | |
|
| |
|
|
|
| А что вас смущает?
Конкатенация двух строковых констант ")" & "');" возвращает ")');". Первый вариант у вас был правильней, т.к. - короче. | |
|
| |
|
|
|
| Но почему принимает такой синтаксис, ведь я мог подразумевать именно текст вида
(мало ли какие у меня виды на эту скобку ) а потом уже закрывать запрос посредством ;" ?? | |
|
| |
|
|
|
| А можно было написать еще и так
"VALUES ('" & "text " & var & " (text2" & var2 & ")" & " & "' & "" & "');" ну и т.д.
Или же так
"VALUES ('" & "text " & var & " (t'" & "'e '" & "'x '" & "'t2" & var2 & ")" & "');"
В общем, идея ,я думаю, понятна | |
|
| |
|
|
|
| Хочу дать совет.
Запрос INSERT INTO ...VALUES... добавляет одну запись. При этом надо напрягаться с форматом дат, дробных чисел, а также с необходимостью обрамления строк кавычками или апострофами, и дублирования этих символов внутри текста.
Гораздо проще открыть пустой Recordset и добавить запись туда, особенно если нужно добавить несколько записей. | |
|
| |
|
|
|
|
..открыть пустой Recordset..
| - это с заведомо невыполнимым условием WHERE False или как? | |
|
| |
|
|
|
|
- это с заведомо невыполнимым условием WHERE False или как?
|
Именно так - WHERE False. В DAO, кроме того, методу OpenRecordset можно передать 3-й аргумент dbAppendOnly.
Собственно, это рекомендуется для ускорения процесса. Можно открывать и весь набор (или отфильтрованный). | |
|
| |