|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Здравствуйте. столкнулась с неприятностью, пытаюсь перевести базу (VFP), к работе с новой таблицей, в которой формат полей совершенно не такой...типа там где у нас было Character....Numeric, где Character....Date. Пришла в голову идея, что чем менять все программы в базе, может лучше написать программу для конвертации нового DBF файла (изменение формата полей), чтоб он стал "своим". Подскажите пожалуйста как это правильно написать. Fox изучаю находу, поэтому даже не представляю как это сделать....Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 15:12 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Анна Познякова, VAL() и CTOD() вам в помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 15:35 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
igorbik, вы наверное неправильно поняли меня, мне не данные менять надо в таблицах, а сам формат полей таблиц. я даже не представляю что при этом происходит с данными. Допустим была дата 37.10.01 (DATE) а мне надо 1937 (Ch)....тут одним DTOC() вроде не отделаешься... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 16:11 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Ну так и посмотрите в Хелпе список всех функций для работы с датами. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 16:17 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Анна Познякова мне не данные менять надо в таблицах, а сам формат полей таблиц. я даже не представляю что при этом происходит с данными. Прочитал внимательно. Может, лучше и не браться? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 16:22 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
> Автор: Анна Познякова > вы наверное неправильно поняли меня, мне не данные менять надо в таблицах, а сам формат полей таблиц. А что мешает переименовать дбф с нужными данными, но неправильной структурой, потом сделать дбф с нужным именем и правильной структурой и простым запросом перелить данный из неправильной в правильную? Если нужно что-то по дороге можно сконвертировать. > вы наверное неправильно поняли меня, Наверное. > мне не данные менять надо в таблицах, а сам формат полей таблиц. я даже не представляю что при этом происходит с > данными. Допустим была дата 37.10.01 (DATE) а мне надо 1937 (Ch)....тут одним DTOC() вроде не отделаешься... Ну в данном случае вполне можно отвертется Transform(Year(имя поля содержащего - дата 37.10.01 (DATE) )) получите то что хотите, Только год и только строкой. Можно как-то более попонятнее описать что есть, что хотите получить? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 16:25 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Ffffffffffffffff, такое чувство я стучу по дереву.....мне не с датами надо работать а таблицу целяком преобразовывать!!!!!!!! структуру ее что ли... я знаю функцию для дейсвий такого типа COPYSRU ... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 16:29 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Анна Позняковамне не данные менять надо в таблицах, а сам формат полей таблиц. я даже не представляю что при этом происходит с данными. Допустим была дата 37.10.01 (DATE) а мне надо 1937 (Ch)....тут одним DTOC() вроде не отделаешься... Обычно исходные данные оставляют "как есть". Просто их "заливают" в нужную таблицу с нужными форматами полей. Т.е. есть у Вас работающее приложение VFP. Для его работы нужны определенные форматы данных. Структура таблиц. Вам принесли некую "левую" таблицу (или эта таблица была создана в другом приложении). В этом случае организуют перенос данных из этой "левой" таблицы в таблицы приложения. Не структуру меняют, а именно данные заносят в уже существующую структуру. Если возможна простая конвертация, то все решается групповыми командами вроде SELECT ... INTO + APPEND FROM или для VFP9 - INSERT INTO ... SELECT ... FROM ... Например, чтобы строка вида "37.10.01" была преобразована в дату {01.10.1937} достаточно сделать такие настройки Код: plaintext 1. 2. 3. 4. 5. 6. 7.
После таких установок смотрим, что вернет преобразование вида Код: plaintext 1. 2. 3. 4.
В более сложных случаях необходимо будет писать специальные процедуры по конвертации данных для каждой записи и каждого поля в отдельности. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 16:35 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Анна Познякова, в таком случае вы должны каждую колонку преобразовывать отдельно при помощи вышеописанных функций. Без преобразования данных в нужный формат вы не зальете их в поле другого формата. Это азы теории баз данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 16:36 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Анна Познякова, и еще....мне нужно не просто эту таблицу переделать, а написать ПРОГРАММУ, которая правильно будет изменять формат полей. в книжке это называется МАДИФИКАЦИЯ СТРУКТУРЫ ТАБЛИЦЫ (переопределение полей). но там написано только, что можно преобразовывать а что нет.... была таблица с полями num,num,date...стала...ch,ch,ch. как это с помощью программы описать. хоть на пальцах напишите... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 16:37 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 17:10 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Анна Позднякова, если Вы хотите научиться программно изменять структуру таблицы, то можно так: use t copy structure extended to t1 use t1 locate for field_name ='pole1' replace field_type with 'C',field_len with 10 locate for field_name ='pole2' replace field_type with 'C',field_len with 20 .......................................................... .......................................................... create t3 from t2 &&получили пустую таблицу t3 с измененными полями. Что Вы будете делать с ней дальше - ума не &&приложу. Данные остались в таблице t. И Вы не можете перелить их в новую таблицу простым &&APPEND FROM, так как структура уже другая. Слушайте, что Вам говорят знатоки. CLOSE ALL DELETE FILE t1.dbf Если будкт доп. вопрос, отвечу. Есть еще ALTER TABLE... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 17:19 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Опечатка: Create t3 from t1 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2010, 17:27 |
|
Конвертировка формата полей DBF
|
|||
---|---|---|---|
#18+
Спасибо всем большое за комментарии, есть над чем задуматься и с чего начать) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.06.2010, 10:24 |
|
|
start [/forum/topic.php?fid=41&msg=36667131&tid=1585223]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
39ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 368ms |
total: | 493ms |
0 / 0 |