![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Maiwend |
|
||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
Мне нужно программно вставить запись в табличку, ругается на то что поле АвтоИнкремент (первое поле). В таблице четыре поля, первое +АвтоИнк, запись надо добавить, внести 3 последних поля
Как это программно грамотно оформить? Я пишу такой код
Что мне написать вместо 01 ? Или например через параметры
:x1 - какое значение надо подставлять? Как правильно сделать добавление записи? Лучше через параметры. |
||||
|
|||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
Автоинкремент - на то и "авто", что сам добавится. Ничего туда писать не надо, да и невыйдет ничего, окромя сообщений об ошибках. В INSERT- конструкции, однако, придётся явно указать все поля, иначе будет пытаться писать всюду, включая автоинкрементое поле:
К слову: внутри области отображения кода не работают теги жирного/подчёркнутого текста и прочие теги форматирования |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
если первое - автоинкремент, тогда
для полей f1(автоинкрементное), f2, f3, f4 в таблице table1 будет так: Insert into table1(t2, t3, t4) values(23, 34, 65) то есть явно перечисляй поля и в таком же порядке - значения для них. Можно не перечислять и не вставлять ничего в автоинкрементное(само сгенерится) и в налл разрешающие поля(налл подставится по умолчанию) -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
Maiwend |
|
||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
Вот именно этого знания и не хватало, про то что явно указывать поля. Спасибо! А то что жирным не выделяет уже сам заметил. Добавлено @ 15:54 chief39 Тоже спасибо! ![]() |
||||
|
|||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
Ны успэл, да...
-------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
Maiwend |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
Еще не все потеряно, у меня опять трабл. Всем Не знаю как правильно загнать значение в табличку. Код такой
Тип поля в табличке Number Тип значения, которое надо запихнуть Float Естественно Дельфи ругается Type mismatch in expression Пробовал писать так
Опять не хватает знаний ![]() |
||||||
|
|||||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
Делфи практически не помню, но мне кажется, что логично ругается... И что в этом случае произошло? Кстати, приведи типы ВСЕХ полей таблицы и кусень кода, где задаёшь ВСЕ параметры и скажи где ИМЕННО вылетает А что за СУБД и какой формат NUMBER? Он может быть number(19,9) (с дробной частью) или, к примеру number(19) без оной. Если ты флоат пытаешься впихнуть в целое. Не помню, будет ли так. Попробуй во втором варианте полученный флоат округлить и преобразовать в инт перед запихиванием asInteger. Да... приведи всё-таки ddl таблицы Зы: тему лучше бы в делфи перетащить(если кто из модераторов заглянет) -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
Maiwend |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
Это да, я нашел описание данной ошибки, но там кода небыло. Тоже самое.
Табличка в которую записываю Paradox7 F1 - +AutoIncrement F2 - Number F3 - Number F4 - Number
Вот кусок. Все работает, все данные идут в параметры, все четко, как запускает запрос начинает ругаться (Form2.Query2.ExecSQL;)
В данном случае я базу сделал из отдельных таблиц Paradox7. Number с дробной частью.
Попробую отпишусь ниже. Вот еще я писал если там есть, что полезное: http://forum.vingrad.ru/index.php?showtopic=97532 |
||||||||||
|
|||||||||||
Maiwend |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
Так выпригивает таже ошибка. Это сообщение отредактировал(а) Maiwend - 7.6.2006, 14:06 |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
Нуу... у тебя два одинаковых по типу параметра задаются по разному(типы гляди) Не в этом ли соль? Добавлено @ 14:15 трунк - это в делфях не для трункации строк? преобразование флоата к инту так проводится? ЗЫ: но это направление отпадает - если тебе в базе нужен флоат, то интежер вставлять не надо тогда... надо с флоатом бороться -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
Maiwend |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
Именно в типах и проблема, только я не знаю еще пока как решить, буду искать. Два одинаковых параметра это конечно, у меня и типы в таблице одинаковые только, Объем нужен с дробью. Кстати я же пробовал, переменную типа Integer записывать тоже не получается ведь. А без параметров все четко, цифры пишутся. Похоже дело в присвоении параметров. Кароче пока я писал нашел ошибку, в эти Number нужно Float кидать все. ![]() ![]() |
|||
|
||||
chief39 |
|
|||
![]() карманная тигра ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1631 Регистрация: 20.5.2005 Где: Киев Репутация: 8 Всего: 77 |
Ну да
Я так понимал что это кусок кода с единственным интежером среди остальных флоатов - это промежуточно-тестовый вариант был, а со всеми флоатами у тебя тоже летело ![]() -------------------- Люди - это свечи. Они либо горят, либо их - в жопу!(с) |
|||
|
||||
Maiwend |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 1.4.2006 Репутация: нет Всего: нет |
В общем моя ошибка была в том, что я пытался записывать в таблицу значение integer, а на самом деле нужно было float Я исправил в коде integer на float и все заработало. Спасибо за помощь, я пока отвечал на твои вопросы пробовал варианты, в результате как бы натолкнулся на решение ![]() |
|||
|
||||
Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: нет Всего: 34 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |