Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: INSERT INTO Добавлено: 04.01.03 11:15  

Автор вопроса:  Poletaev_R

При попытке вставить запись выдается ошибка:

Ошибка синтаксиса в инструкции INSERT INTO.

SOS.

db_file = App.Path

If Right$(db_file, 1) <> "\" Then db_file = db_file & "\"

db_file = db_file & "Dispetcherskaj.mdb"

Set conn = New ADODB.Connection

conn.ConnectionString = _

"Provider=Microsoft.Jet.OLEDB.4.0;" & _

"Data Source=" & db_file & ";" & _

"Persist Security Info=False"

conn.Open

For i = 1 To SQL_Text_day

SQL_string = "INSERT INTO Gurnal (year, month, day) VALUES (" & SQL_Text_year & "," & SQL_Text_month & "," & i & ")"

conn.Execute SQL_string

Next i

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Svetlana



ICQ: 262385618 

Вопросов: 43
Ответов: 205
 Профиль | | #1 Добавлено: 04.01.03 22:29
 А разве можно использовать в INSERT INTO такой синтаксис??? Этот способ у тебя когда-нибудь работал? или это ты впервые применяешь???

Ответить

Номер ответа: 2
Автор ответа:
 vig11



ICQ: 213777061 

Вопросов: 21
Ответов: 159
 Профиль | | #2 Добавлено: 04.01.03 23:30
А где Ты заполняешь переменные SQL_Text_day, SQL_Text_year и SQL_Text_month? Это во-первых. Во-вторых проверь тип данных этих переменных. Если они Integer, то запись верна, а если String то нужно добавлять  "'" .Т.е. Values ('" & SQL_Text_year & "','" & SQL_Text_month & "'," & i & ")"

Ответить

Номер ответа: 3
Автор ответа:
 vig11



ICQ: 213777061 

Вопросов: 21
Ответов: 159
 Профиль | | #3 Добавлено: 05.01.03 10:06
Синтаксис у Тебя вроде бы правильный. Но я не видел где Ты определяешь и заполняешь переменные SQL_Text_day, SQL_Text_month и SQL_Text_year.
поставь BreakPoint на строчку conn.Execute SQL_string и проверь какой String Ты получил. Потому, что Ты подставляешь переменные SQL_*** как Integer-ы, а в таблице поля определены тоже как Integer-ы или String-и или Date ? Ты должен заносить данные в таблицу в соответсвии с типом данных поля. Кроме того проверь нет ли у Тебя определение какого-либо поля как поля принимающего данные Unique (запрещает вносить повторно одинаковые записи) учитывая, что запись у Тебя идет в цикле может быть в этом причина?

Ответить

Номер ответа: 4
Автор ответа:
 Poletaev_R



Вопросов: 5
Ответов: 2
 Профиль | | #4 Добавлено: 05.01.03 19:51

Спасибо за советы.

Я нашел причину, она оказалесь довольно тривиальной:

у Access немного отличается язык SQL надо было

написать так:

SQL_string = "INSERT INTO Gurnal ([year], [month], [day]) _

VALUES ('" & SQL_Text_year & "','" & SQL_Text_month & "'," & i & ")"

Тоесть имена полей таблицы поместить в [] скобки. MS хитрюга. :-)

Всем кто будет писать запросы SQL на изменение, для Access могу посоветовать тестировать их во встроенном редакторе!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам