2012-04-15 4 views
0

Я ввел даты в Access из ASP до и им, используя тот же код ... но он не будет принимать запрос ни на что. Я работаю весь день, может быть, я просто устал, но может кто-нибудь взглянуть на это для меня?ASP Classic и MSAccess Даты

Это пример запроса кода генерирует:

INSERT INTO COMMENTS (FID,AUTHOR,DATE,COMMENT) VALUES ("6","John Doe",#4/15/2012#,"test comment") 

Как я уже сказал, шаблон для кода пришел прямо откуда-то еще, что работает. Если я удалю дату из запроса, она отлично работает. Я проверил тройной флажок в поле DATE, это столбец DATE/TIME, и я попытался удалить и повторно создать его без везения.

Поблагодарили бы за помощь.

ответ

1

Я не касался доступа в то время, но несколько запросов, вы можете попробовать:

Запрос 1: Изменение DATE к поскольку DATE может быть общим ключевым словом, используемое на Access.

INSERT INTO COMMENTS 
    (FID,AUTHOR,[DATE],COMMENT) 
    VALUES 
    ("6","John Doe",#4/15/2012#,"test comment") 

Запрос 2: Изменение #4/15/2012# для GetDate() (Штамп даты)

INSERT INTO COMMENTS 
    (FID,AUTHOR,[DATE],COMMENT) 
    VALUES 
    ("6","John Doe",GETDATE(),"test comment") 

Или, может быть, попробовать комбинацию из них. Отправляйте отчеты, если они не работают.

+0

Ваш первый пример действителен, а второй нет. Если OP требует текущей даты, используйте Date(), а не GETDATE(). В идеале, даты должны быть в формате 4 цифры год, месяц, день, чтобы избежать двусмысленности и ошибок локали. Мне кажется странным, что поле (столбец), называемое FID, должно быть текстовым. Если это числовое значение, значение не следует указывать. – Fionnuala

0

Вы можете попробовать #MM-DD-YYYY#. Также предлагается использовать ГГГГ-ММ-ДД, поэтому вы можете попробовать #YYYY-MM-DD# или даже #'YYYY-MM-DD'#.

+0

Дата является зарезервированным словом и должна быть заключена в квадратные скобки, как показано в @ZeeTee. См. Также мой комментарий ниже относительно формата даты. – Fionnuala

0

Вот что я должен работать для меня:

strDSNPath = "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("data.mdb") 
    strSQL_Insert = "INSERT INTO COMMENTS (FID,AUTHOR,CDATE,COMMENT) VALUES ('6','John Doe','4/15/2012','test comment')" 

    Set Conn=Server.CreateObject("ADODB.Connection") 
     Conn.Open strDSNPath 
      Conn.Execute strSQL_Insert 
     Conn.Close 
    Set Conn = Nothing 

А вот база данных: Download

Примечания:

* Я не мог заставить его работать с (") так что я использовал (')

* дата не имеет хэштегом (который, возможно, потребуется Fixing)

* Извините, что так поздно, мне понадобилось полтора часа, чтобы понять это, и это только закончилось тем, что «использовали одинарные кавычки»

+0

CDATE - действительно плохое имя для поля (колонки), это имя функции. – Fionnuala

+0

Вы не можете использовать двойные кавычки (") внутри строки, как система сообщила бы, когда строка закончится и начнется ваше значение. Вы можете использовать две двойные кавычки:' "VALUES (" "test comment" ")". используют одинарные кавычки, и рекомендуется, чтобы вы избежали появления одиночных кавычек в своей строке, используя две одинарные кавычки: «VALUES (« I''ll try »)» «Функция replace сделает это. – Fionnuala

+0

Действительно ли FID текстовый столбец (поле)? – Fionnuala