![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление записей через запрос из одной таблицы в другую [D7, XP]
VOPROS © (2007-01-09 14:29:00)Доброго времени суток, уважаемые Мастера!
Таблицы Foxpro, ADOQuery
Таблица2 имеет несколько полей, совпадающие с полями таблицы 1, + свои собственные поля, которых нет в таблице 1
Из таблицы1 в таблицу2 добавляю записи, пишу так:
INSERT INTO table2 (bzv,bzv1,bzs) SELECT bzv,bzv1,bzs FROM table1
В этом случае выходит ошибка "Field ... does not accept null values", при этом Field - это собственное поле таблицы 2.
Тогда пишу так:
INSERT INTO table2 (bzv,bzv1,bzs,pole) SELECT bzv,bzv1,bzs,'''' as pole FROM table1
Вообщем, пришлось перечислить таким образом все поля, которых не было в первой таблице. Работает. НО - такие поля числового типа получают значение нуля, мне же необходимо, чтоб они были пустыми. Как это можно сделать?
Прошу помочь. Спасибо.
VOPROS (2007-01-11 14:09:00) [1]
> Что-то я не припоминаю, чтобы в фоксе было возможно поставить
> ограничение NOT NULL на поле.
вообще-то там есть свойство NULL, но в результате экспериментов оно показало, что не является ограничением
> Может, ты в подключении намудрил или провайер такой?
в подключении только путь к каталогу с таблицами, режим ReadWrite и Loginprompt=false, остальное по умолчанию. Провайдер Microsoft OLE DB Provider for Visual FoxPro 9.0 ???
Desdechado (2007-01-11 13:43:00) [2]Что-то я не припоминаю, чтобы в фоксе было возможно поставить ограничение NOT NULL на поле.
Может, ты в подключении намудрил или провайер такой?
VOPROS (2007-01-11 13:39:00) [3]
> > can not determine datatype of sql column pole
> CAST( null AS NUMBER ) AS pole
и опять же "Field ... does not accept null values"
> Ошибка "Field ... does not accept null values" плохо сочетается
> с
> > вот именно - такое свойство не установлено.
прекрасно это понимаю, вообще свойства полей проверялись черех tabledesigner FoxPro, там ничего не помечено, посоветуйте, где еще можно глянуть. В любом случае я не понимаю, как человек, писавший ту программу, смог все же закинуть данные из 1 таблицы, оставив при этом pole пустым??? И как сделать это мне?
Desdechado (2007-01-10 11:27:00) [4]> can not determine datatype of sql column pole
CAST( null AS NUMBER ) AS pole
PS а вообще явные противоречия в вопросах
темнить долго будешь?
Ega23 (2007-01-10 09:28:00) [5]Ошибка "Field ... does not accept null values" плохо сочетается с
> вот именно - такое свойство не установлено.
VOPROS (2007-01-10 06:20:00) [6]
> см. свойство колонки. если оно not null - ты там вообще
> null-значение никогда не получишь.
вот именно - такое свойство не установлено. Вообще я пишу маленькую примочку к одной программе без исходников, помогающую скидывать не одну, а несколько таких таблиц 1 - сама программа может закидывать только одну таблицу и при этом в полях таблицы 2, которых нет в первой, значения пустые (проверялось не только на глаз, но и запросом) ???
> Иначе:
> INSERT INTO table2 (bzv,bzv1,bzs,pole) SELECT bzv,bzv1,bzs,
> null as pole FROM table1
Уже было опробовано - в таком случае ругается "SQL: can not determine datatype of sql column pole" ???
Ega23 (2007-01-09 14:34:00) [7]см. свойство колонки. если оно not null - ты там вообще null-значение никогда не получишь.
Иначе:
INSERT INTO table2 (bzv,bzv1,bzs,pole) SELECT bzv,bzv1,bzs,null as pole FROM table1