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

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

BatchMove не работает с вычисляемым полем! [D6, dBase, FoxPro]


Соловьев ©   (2003-01-09 12:23:00) 

Использую BatchMove для сохранения данных из одной таблицу в другую. Если поле не вычисляемое , то все нормально, а как быть с вычисляемым?


sniknik   (2003-01-09 15:47:00) [1]

Можно попробовать разбить строку если перейти на ADO + Jet (тогда в запросе многие функции бейсика доступны, получится чуть ли не программа в одном запросе)
но для одного раза действительно не стоит огород городить.


MsGuns   (2003-01-09 15:45:00) [2]

Как чувствовал :)) Зубодробительный !!!! Делал когда-то подобные вещи. Одним проходом без ручного контроля-правки тут обойтись тяжело. И это надо было всунуть в OnCalcFields ?!?! Ну уж, как говорится, флаг в руки, а древко - в ....


Val   (2003-01-09 14:39:00) [3]

это нормально для одноразовой работы


Соловьев   (2003-01-09 14:37:00) [4]

Я так и делаю. Но сохранять потом около 30 тыс записей перебором очень долго.


Val   (2003-01-09 14:35:00) [5]

мда...вычисляемое поле называется. придется разбирать строку на паскале и добавлять по одной записи. см.Mike Kouzmine (09.01.03 14:09)


Соловьев   (2003-01-09 14:19:00) [6]

КЕМ ВЫДАН ДОКУМЕНТ, ДАТА и ДРУГОЕ- 3 вычисляемых поля из одного.


Val   (2003-01-09 14:12:00) [7]

ничего не понял :(
где вычисляемое поле?
Поле1 - Name = VYDANили нужно выцепить из строки ...?


Mike Kouzmine   (2003-01-09 14:09:00) [8]

Наверное, только while not eof appendrecord


Соловьев   (2003-01-09 14:01:00) [9]

OK!
Пишу. Структура такая:
Таблица №1
Поле1 - Name = VYDAN, type=character, size=150.
Остальные поля в вычислении не принимают участия поэтому не пишу.
В этом поле хранится Бог знает что - инфу набивали, кто только угодно. Алгорит такой, что нужно выцепить из строки ДАТУ и КЕМ ВЫДАН ДОКУМЕНТ=вся строка-ДАТА(или ЧАСТЬ ДАТЫ), если этого нельзя сделать то выдать всю строку.

Таблица №2
Поле1 - name=ID_VYDAN, type=numeric, size=2,0
Поле2 - name=N_VYDAN, type=character, size=150

Так вот нужно сохранить КЕМ ВЫДАН ДОКУМЕНТ в N_VYDAN.


Val   (2003-01-09 13:55:00) [10]

>MsGuns © (09.01.03 13:52)
согласен с утверждениями, с последним в особенности, но, Сергей, я говорил о вложенном в insert select"e, тут может не сработать на Local"е, хотя, я, конечно же, могу ошибаться.


MsGuns   (2003-01-09 13:52:00) [11]

>Val © (09.01.03 13:48)
>Единственная проблема может возникнуть в том, что Local SQL не поддержит конструкции, тогда придется ваоспользоваться Local views, возможно.

Local SQL поддерживает бОльшую часть конструкций: конъюнкцию-дизъюнкцию, всю арифметику и еще кое-что. Но если там и взаправду зубодробительный алгоритм вычисляемого поля, то тогда вопросы к разработчику приложения.
А вообще-то без структур и формулы это все базарный п....ж !


Val   (2003-01-09 13:48:00) [12]

>Соловьев (09.01.03 13:40)

> но попробуй

Что пробовать, делать надо :)
Давайте структуры таблиц, для начала.
Единственная проблема может возникнуть в том, что Local SQL не поддержит конструкции, тогда придется ваоспользоваться Local views, возможно.


Соловьев   (2003-01-09 13:40:00) [13]

2 Val
Да, с SQL я недоучил, но попробуй сохранить с помощью SQL вычисляемое поле.


Val   (2003-01-09 13:38:00) [14]

>Соловьев (09.01.03 13:30)
SQL этого не сделает.
На сколько я знаю SQL добавляет по одной записи
Прежде чем утверждать, неплохо бы изучить предмет.
В Вашем случае, лучший выход именно SQL.


Соловьев   (2003-01-09 13:30:00) [15]

А множество он добавить сможет, я не знал. :((((
insert into <table1> <select * from table2 >


gek   (2003-01-09 13:30:00) [16]


> как быть с вычисляемым?

Никак см. MsGuns © (09.01.03 13:00)


Соловьев   (2003-01-09 13:18:00) [17]

2 MsGuns
Ты наверное не понял: мне надо сохранить вычисляемоеполе из первой во вторую. SQL этого не сделает.


MsGuns   (2003-01-09 13:12:00) [18]

Структуры таблиц - в студию !


Соловьев   (2003-01-09 13:05:00) [19]

Мне надо переписывать все записи с одной таблицы в другую: вычисляемое поле из первой в физическое поле второй. На сколько я знаю SQL добавляет по одной записи. А может я чего-то не понимаю. Сорри. Может поможите с SQL запросом тогда: чтобы добавлял множество.


MsGuns   (2003-01-09 13:00:00) [20]

Если обе таблицы идентичны, то не имеет смысла переписывать вычисляемые поля,- они сами по себе смысла не имеют. Если же в исх.таблице такого поля физически нет, а в результирующую надо его переписывать как поле обычное, то лучше это делать SQL-запросом.


Наверх

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