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

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

Как переименовать поле в физической базе  прогаммным путем? [D7, dBase, FoxPro]


Страницы:   1 2

SCORPION ZP ©   (2003-07-01 20:53:00) 

Есть таблица в формате dBASE. В неё программно добавляем поля,
причем новые могут совпадать по имени с уже существующими. И вот
очень желательно переименовать не новые поля, а старые -
совпадаюшие...


SCORPION ZP   (2003-07-03 16:30:00) [1]

гончий
Да действительно вопрос решен. Degisy forever!


SCORPION ZP   (2003-07-03 12:31:00) [2]

Удалено модератором
Примечание: Личная переписка


гончий   (2003-07-03 11:18:00) [3]

Удалено модератором
Примечание: Личная переписка


SCORPION ZP   (2003-07-03 10:19:00) [4]

Удалено модератором
Примечание: Личная переписка


гончий   (2003-07-03 09:19:00) [5]

Тодбко что проверил работу TRenameFields на таблице Clients.dbf из DemoData Delphi - все работает великолепно и данные на месте :)


гончий   (2003-07-03 08:56:00) [6]

Удалено модератором
Примечание: Личная переписка


SCORPION ZP   (2003-07-02 21:07:00) [7]

Serginio
Спасибо за ссылки!


SCORPION ZP   (2003-07-02 20:42:00) [8]

гончий
Скажи, что за ботва??? TRenameFields действительно переименовывает поля, но зачем скажи все записи в полях перемешивать. Все смешалось и люди и кони. А я ведь размерность полей не меняю и типы полей не меняю!


SCORPION ZP   (2003-07-02 17:14:00) [9]

гончий
Спасибо!!! Всё подробно описал. Как только освободится машина - попробую. Только алиас, имя таблицы и имена полей я буду задавать программно, но это сути не меняет.


SCORPION ZP   (2003-07-02 17:01:00) [10]


> не понимаю правда как это с переименовкой полей у тебя связано
> и чем переименовко в этом случае поможет/нужна

1.Переименование полей - это ещё одна задача для решения. А задачи мне ставит шеф и зачем это ему понадобилось только он и знает...

> а то немного нестандартное представление и уже тебя в тупик
> ставит.

2.Не суди и не судим будешь... Раскалоли! Я работаю админом в игровом клубе, а в нагрузку вот с базами это ...


sniknik   (2003-07-02 15:48:00) [11]

SCORPION ZP © (02.07.03 15:03)
> 2.Даже, если сторонними продуктами мне удастся просмотреть (очень бы хотелось) записи, то все равно мне же это не даст возможности с ними работать. Все одно нужна расшифровка.
какая расшифровка??? ты даже не знаеш что оно зашифровано а уже расшифровывать собрался. то что там число вместо текста ... ну и что?

читать можно приблизительно так (не проверял на работоспособность, совсем)

type
TMyCurr = packed record {поля по 16байт, в середине пусто + деньги упоминались, воэможно это 2 ->}
Val1: Currency;
Val2: Currency;
end;

pRecBuf: Pointer;
MyCurr: TMyCurr;
Blank: LongBool;
begin
Blank:= false;
pRecBuf := AllocMem(16);
DbiGetField(Table1.Handle, 2, pRecBuf, @MyCurr, Blank);
FreeMem(pRecBuf, 16)

if MyCurr = 0 then не получилось или пустое поле


почитал бы чего по внутренностям компов, про память, форматы/типы данных ... ets
а то немного нестандартное представление и уже тебя в тупик ставит.

попробуй сделать файл типа рекорд с цифрой внутри (разного типа по очереди), записывай по одной записи с ненулевыми значениями(лутше с числом из программы которая с этим файлом работает) в этой цифре и сравнивай получившееся с твоими полями в редакторе (NC Dos).
найдеш похожее можно будет дальше двигатся.

p.s. не понимаю правда как это с переименовкой полей у тебя связано и чем переименовко в этом случае поможет/нужна?.


гончий   (2003-07-02 15:31:00) [12]

Там все просто (читай файлы *.txt):
{--------------------------------------------------------------
TRenameFields компонент
--------------------------------------------------------------}
1. Перетащить компонент на главную форму Вашего приложения.
2. Установить свойство DatabaseName и TableName таким образом,
чтобы оно указывало на таблицу в которой необходимо изменить
названия полей.
3. В свойстве Mappings необходимо перечислить поля, которые
необходимо переименовать, например:

property Mappings:
(
NAME=AnimalName
SIZE=AnimalSize
WEIGHT=AnimalWeight
BMP=AnimalBmp
)
где, слева от знака равенства находится старое имя поля, а справа новое.

4. Вызвать функцию Execute компонента, которая в случае успешного переименования
вернет значение True. Также можно вызвать эту функцию и в Design-time режиме,
нажав правой клавишей мыши на компоненте и выбрав пункт меню "Execute...".
-----------
Удачи!


SCORPION ZP   (2003-07-02 15:16:00) [13]

гончий
Я пока не разобрася как там работает DegisyDb в плане переименовывания полей. Как сделаю или возникнут проблемы - сообщу тебе.


Serginio   (2003-07-02 15:16:00) [14]

http://alyunov.narod.ru/files/dBase.htm
http://www.e-bachmann.dk/docs/xbase.htm
http://www.codenet.ru/progr/formt/intro.php
http://articlesd.h1.ru/docum/dbfall.php


SCORPION ZP   (2003-07-02 15:03:00) [15]

sniknik
1.Да я понимаю, что открыть и посмотреть записи можно через
текстовый редактор. Два раза(или три) мне можешь не повторять...
Там в каждой ячейке по два числа(наверное по 3-4 цифры судя по тем нечитаемым символам). Так моей задачей является разбиение
каждого поля пополам: одно число в одну таблицу, а другое - в
другую. Только вот преобразовать строку с такими символами
в чило - просто не представляю как.
2.Даже, если сторонними продуктами мне удастся просмотреть (очень бы хотелось) записи, то все равно мне же это не даст
возможности с ними работать. Все одно нужна расшифровка.


sniknik   (2003-07-02 13:24:00) [16]

> А как? sniknik смотри ящик.
у тебя там просто, в текстовые поля цифры занесены в битовом формате (хотя может это не цифры а шифровка) и похоже по 2 цифры в поле судя по разрыву между значимыми (но может так копейки отдельно хранятся), факт в том что в начале поля стоят символы #0 которые есть признак конца поля в PChar (а так как оно участвует в преобразовании....).
(по моему уже обсуждалось, не я точно уже раза три подобное обьяснял, но тот случай именно с тобой)

можно прочитать
1 текстовым редактором,
2 сторонними компонентами,
3 BDE DbiGetField/Record (это как раз там подсказали в том случае).
но в любом придется самому искать алгоритм по которому это поле формировали, и также его читать.


гончий   (2003-07-02 13:10:00) [17]

Странная ошибка..сейчас вышлю этот файл


SCORPION ZP   (2003-07-02 13:04:00) [18]

Оговорился действительно я скачал DegisyData...


SCORPION ZP   (2003-07-02 13:01:00) [19]

гончий
Установил всю библиотеку DegisyDb. Но при компиляции примера
выдает, что не может найти "DsDbUtils.pas". Вообщем всех модулей pas из dpk нигде нет. Панель "Degisy Data" в Delphi появилась...


гончий   (2003-07-02 12:51:00) [20]

Не DegisyData! а DegisyDb!!!
http://www.degisy.com/download.php?lang=rus


Страницы:   1 2

Наверх

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