Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 FireDAC вставка записи в таблицу  [new]
TryFireDAC
Guest
Создана таблица в pgAdmin 4 PostgreSQL:
CREATE TABLE public.list2
(
    id integer NOT NULL DEFAULT nextval('list2_id_seq'::regclass),
    timestring text COLLATE pg_catalog."default" NOT NULL,
    timetime timestamp without time zone NOT NULL,
    mesto text COLLATE pg_catalog."default" NOT NULL,
    itogo integer NOT NULL,
    sostav text COLLATE pg_catalog."default" NOT NULL,
    reservstring text COLLATE pg_catalog."default",
    reservint integer,
    CONSTRAINT list2_pkey PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.list2
    OWNER to postgres;


Поле ID это PRIMARY KEY. Пытаюсь вставить запись в эту таблицу из кода:
INSERT INTO list2 VALUES(:timestring, :timetime, :mesto, :itogo, :sostav);


Получаю ошибку:
Класс: EPgNativeException Сообщение: [FireDAC][Phys][PG][libpq] ОШИБКА: столбец "id" имеет тип integer, а выражение - character varying.
Перепишите выражение или преобразуйте его тип.

Не могу понять при чем здесь автоинкрименый первичный ключ поля id?
Подскажите, пожалуйста, как исправить и как вставлять запись в эту таблицу?
Спасибо.
1 дек 17, 16:35    [20999014]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
goldmi45
Member

Откуда:
Сообщений: 900
TryFireDAC,

первое поле - id, а не timestring
Перечислите те поля, которые вы собираетесь вставлять.
1 дек 17, 16:41    [20999036]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
TryFireDAC
Guest
Торможу и не понимаю... :(
id должно само автоматом вставляться как первичный ключ.
Я не могу написать, например, так:
INSERT INTO list2 VALUES(:id, :timestring, :timetime, :mesto, :itogo, :sostav);
Так как только база данных знает, что именно вставить в id.
1 дек 17, 16:48    [20999066]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2420
непонятно только при чем здесь Delphi
попробуйте выполнить ваш запрос в родном для postgree sql редакторе
1 дек 17, 17:02    [20999113]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
ВродеПонятно
Guest
автор
непонятно только при чем здесь Delphi


FireDAC
1 дек 17, 17:04    [20999119]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2420
ВродеПонятно
автор
непонятно только при чем здесь Delphi


FireDAC


попробовал?
1 дек 17, 17:05    [20999123]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
TryFireDAC
Guest
автор
попробуйте выполнить ваш запрос в родном для postgree sql редакторе


В pgAdmin:
INSERT INTO list2 VALUES("20.11.17 20:47:49", "20.11.17 20:47:49", "Вася", "Вася", "Вася");
Ответ:
Query returned successfully in 840 msec.
1 дек 17, 17:14    [20999147]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
TryFireDAC
Guest
Нет, pgAdmin в PostgreSQL 10 полный отстой. Если даже написать полную ерунду всегда пишет:
Query returned successfully
Хрень...
1 дек 17, 17:24    [20999170]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
d7i
Member

Откуда:
Сообщений: 111
TryFireDAC,
я PostgreSQL в глаза не видел, но обычно вставку пишут так:

INSERT INTO таблица(список_полей) VALUES(список_значений)...

Всегда работает 100%....
1 дек 17, 17:45    [20999225]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC вставка записи в таблицу  [new]
TryFireDAC
Guest
Извините, все получилось. Заодно ушел с PostgreSQL 10 на 9 версию. Уж больно глючно было в 10-ке...
1 дек 17, 19:40    [20999457]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить