|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.08.2007, 13:50 | #1 |
Пользователь
Регистрация: 17.07.2007
Сообщений: 12
|
Тип данных в Interbase
Вобщем вопрос такого плана, есть такой код в Delphi:
... var data,day,mon,year :string ... data:=10.09.2007 day:=copy(data,1,2) mon:=copy(data,4,2) year:=copy(data,7,4) QAA.close; QAA.sql.clear; QAA.sql.add('insert into j_v_un (Day,Mon,Year) values'); QAA.sql.add(' '+day+', '+mon+','+year+' '); QAA.open; Во время просмотра записей в базе вместо mon=09 все время mon=9. Т.е. первый ноль он не считает за символ, и по ходу в самой базе. База данных Interbase 6.0, типы полей day,mon,year - char или varchar. Заранее спасибо! |
29.08.2007, 01:22 | #2 |
Новичок
Джуниор
Регистрация: 29.08.2007
Сообщений: 2
|
Возможно при выполнении запроса происходит автоматическое конвертирование типов данных.
Попробуй изменить строчку: QAA.sql.add(' '+day+', '+mon+','+year+' '); на: QAA.sql.add(''''+day+''', '''+mon+''','''+year+''''); - да так много апострофов ну, пробелы сам расставишь как надо А вообще, советую пользоваться параметрами |
29.08.2007, 08:25 | #3 | |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
Цитата:
во-вторіх, чтобі не парится с '''' ,можно пользоваться quotedStr(ляляля)
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
|
29.08.2007, 17:07 | #4 |
Пользователь
Регистрация: 17.07.2007
Сообщений: 12
|
Вот так все заработало:
...var data,day,mon,year :string...data:=10.09.2007day:=copy(data,1,2)mon:=copy(data,4,2)year:=copy(data,7,4)QAA.close;QAA.sql.clear;QAA.sql.ad d('insert into j_v_un (Day,Mon,Year) values');QAA.sql.add('(rm1, :Prm2, :Prm3;');QAA.Parameters.ParamByName('Prm1').asstring:=day;QAA.Parameters.Para mByName('Prm2').asstring:=mon;QAA.Parameters.Para mByName('Prm3').asstring:=year;QAA.ExecSQL; |
29.08.2007, 17:34 | #5 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Использовать day:=copy(data,1,2) не лучший вариант.
Лучше использовать EncodeDate() или хотябы привести дату в нужный формат FormatDateTime(). Иначе, если в региональных настройках стоит неверный формат, выскочит абракадабра. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание базы данных в InterBase. | EdNovice | БД в Delphi | 5 | 22.04.2012 11:07 |
Ввод рег.Данных в Interbase | pro2f | БД в Delphi | 4 | 03.09.2007 14:49 |
InterBase | EdNovice | БД в Delphi | 1 | 11.05.2007 12:12 |
InterBase 6.5 | san4es | БД в Delphi | 0 | 12.12.2006 20:03 |