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

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

Изменение данных в таблице Paradox


Artemij ©   (2003-07-28 13:47:00) 

Здравствуйте! Я пытаюсь програмным путем изменить данные одного из нескольких полей в таблице, т.е. необходимо, чтобы данные первого и третьего полей остались неизменными, а данные второго поменялись на данные из TXT файла. Пробовал следующее:
var
f : textFile;
s : string;
a : string;
begin
AssignFile(f,"D:\aaa.txt");
Reset(f);
while notEof(f) do
begin
ReadLn(f,s);
a := s;
Table1.InsertRecord([Null, a, Null]);
( f)

Здравствуйте! Я пытаюсь програмным путем изменить данные одного из нескольких полей в таблице, т.е. необходимо, чтобы данные первого и третьего полей остались неизменными, а данные второго поменялись на данные из TXT файла. Пробовал следующее:
var
f : textFile;
s : string;
a : string;
begin
AssignFile(f,"D:\aaa.txt");
Reset(f);
while notEof(f) do
begin
ReadLn(f,s);
a := s;
Table1.InsertRecord([Null, a, Null]);
end;
CloseFile(f);
end;

где думал, что Nullигорирует знач. полей и перескакивает их. Но вылетает окно, что не может подставить значение первого поля :(. Есть ли какой-нибудь способ решить задачку? Спасибо!


Artemij   (2003-07-28 14:35:00) [1]


> Соловьев ©

ЗАРАБОТАЛО! СПАСИБО!


Artemij   (2003-07-28 14:33:00) [2]

> В первом случае меняется только первая запись
и то это последнее значение из TXT файла. Получается, что не происходит перескок на следующий Record в таблице.


Соловьев   (2003-07-28 14:32:00) [3]


> Кол-во записей одинаково и они все едут подряд.

лучше если бы было какое-то ключевое поле.

> Я пытаюсь полностью обновить данные поля. Пробовал Table1.Edit
> и Table1.Assign. В первом случае меняется только первая
> запись, а во втором записи только добавляются, но не изменяются.

нужно использовать Edit. надо после
Table.Post; Table1.Next; - забыл про это :)


Mike1 Kouzmine1   (2003-07-28 14:30:00) [4]

А ты переходи на нужную запись и ее редактируй, а как на нее перейти - вот вопрос. Если последовательно все идет и без индексов, то последовательно, а проще все удали и заново добавь.


Artemij   (2003-07-28 14:28:00) [5]


> Соловьев ©


> может не разобрался что делает этот метод(а судя по NULL,
> то хелп и не смотрит).

В Help то как раз посмотрел, но не разобрался, что этот метод делает.


Artemij   (2003-07-28 14:25:00) [6]

Я пытаюсь полностью обновить данные поля. Пробовал Table1.Edit и Table1.Assign. В первом случае меняется только первая запись, а во втором записи только добавляются, но не изменяются.

> Соловьев ©


> только как ты проверяешь соответсвие записей в БД и текстовом
> файле?


Кол-во записей одинаково и они все едут подряд.


Соловьев   (2003-07-28 14:22:00) [7]


> тогда зачем делает
> Table1.InsertRecord([Null, a, Null]);

А кто его знает? может не разобрался что делает этот метод(а судя по NULL, то хелп и не смотрит).


sniknik   (2003-07-28 14:15:00) [8]

Соловьев © (28.07.03 14:04)
>> sniknik © (28.07.03 13:58
>нет, ты не прав. автор поста говорит как раз про обновление
тогда зачем делает
Table1. InsertRecord([Null, a, Null]);
?
по коду похоже на добавление таблицы из текстового файла.


Соловьев   (2003-07-28 14:10:00) [9]


> Artemij © (28.07.03 13:47)

только как ты проверяешь соответсвие записей в БД и текстовом файле?


Соловьев   (2003-07-28 14:04:00) [10]


> sniknik © (28.07.03 13:58

нет, ты не прав. автор поста говорит как раз про обновление

> Я пытаюсь програмным путем изменить данные одного из нескольких
> полей в таблице


sniknik   (2003-07-28 13:58:00) [11]

а если так?
Table1.InsertRecord([Null, a]);
(не вводить конечные нилы, как в примере ...
Note that Nulls are entered for some of the values, but are not required for missing values at the end of the array argument.)

у Соловьев © (28.07.03 13:52)
Table1.Edit;
на
Table1.Append;
поменяй.


Mike1 Kouzmine1   (2003-07-28 13:53:00) [12]

Прошу прощения - не увидел, что изменить.


Соловьев   (2003-07-28 13:52:00) [13]


> где думал, что Null игорирует знач.

нет не игнорирует.

var
f : textFile;
s : string;
begin
AssignFile(f,"D:\aaa.txt");
Reset(f);
while not Eof(f) do
begin
ReadLn(f,s);
a := s;
Table1.Edit;
Table1.Fileds[1].AsString = s;
Table1.Post;
( f)


> где думал, что Null игорирует знач.

нет не игнорирует.

var
f : textFile;
s : string;
begin
AssignFile(f,"D:\aaa.txt");
Reset(f);
while not Eof(f) do
begin
ReadLn(f,s);
a := s;
Table1.Edit;
Table1.Fileds[1].AsString = s;
Table1.Post;
end;
CloseFile(f);
end;


Mike1 Kouzmine1   (2003-07-28 13:52:00) [14]

Nil


Наверх

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