Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вставка даты в таблицу [D6, MSSQL]


idpro ©   (2003-01-11 15:37:00) 

Помогите с простым вроде вопросом:
используя ADOQuery я предаю ему на выполнение скомпанованный запрос:
"insert into Table_name (d_date) values ("+ sYYYYMMDD+ ")"
где d_date - поле типа datetime, sYYYYMMDD - строка, в которой содержится дата.
в каком виде мне нужно передавать эту строку, чтоб получить нормальный вид даты?
при передачи строки вида "2003-01-01" получается 22.06.1905


Alex-Alexeev   (2003-01-13 08:49:00) [1]


sYYYYMMDD := "20030113"; {т.е. сегодня в формате YYYYMMDD}
ADOQuery.SQL.Text := "insert into Table_name (d_date) values ("""+ sYYYYMMDD+ """)"; {Здесь саму строку уже в строке запроса тоже надо в апострофы заключать}
ADOQuery.ExecSQL;


Rina   (2003-01-12 00:59:00) [2]

Насколько помниться дата при передаче в запрос идет с кавычками
Поэтому предложить могу следующее
adoquery1.sql.append(
"insert into Table_name (d_date) values ("""
+"01.02.2003"+""")");


gsu   (2003-01-11 16:25:00) [3]

1. погоди, если ты вставляешь данные в поле DateTime, то и типа они должны быть такого же.
2. я стормозил про нужно вставлять именно строку
3. попробуй так:adoquery1.sql.append(
"insert into Table_name (d_date) values ("
+"01.02.2003"+")"); - тут многое зависит от настроек разделителей даты в системе и values
4. или так: adoquery1.sql.append(
"insert into Table_name (d_date) values ("
+"37653"+")");- шуршит ?


idpro   (2003-01-11 16:10:00) [4]

нет, StrToDateTime - дельфийская функция, а это формируется sql запрос, он должен быть строкой.
в "values("+" "+")" нужно вставлять именно строку.


gsu   (2003-01-11 16:05:00) [5]

adoquery1.sql.append(
"insert into Table_name (d_date) values (StrToDateTime(sYYYYMMDD))
");
Так не пойдет ?


idpro   (2003-01-11 16:02:00) [6]

нет, это часть строки, которая передается в ADOquery
adoquery1.sql.append(
"insert into Table_name (d_date) values ("
+ sYYYYMMDD+
")");


gsu   (2003-01-11 15:54:00) [7]

insert into Table_name (d_date) values (DateTimeToStr("01.02.2003"))
и вообще "+ sYYYYMMDD+ " - это не строка, в которой содержится дата, а строка:
+ sYYYYMMDD+


idpro   (2003-01-11 15:47:00) [8]

я не допонял: sYYYYMMDD- переменная типа string, компануется из двух чисел - месяц и год, (например 02 и 2003).
что мне сделать с ней, перед тем как подставитьв запрос?


gsu   (2003-01-11 15:40:00) [9]

datetime - это число, поэтому надо строку конвертнуть в дату, н-р, DateTimeToStr


Наверх

Титульная страница Поиск, карта сайта Написать письмо