Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменения даных во всей таблице, Изменения даных во всей таблице 
V
    Опции темы
alf138
Дата 8.4.2010, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Есть таблица в которой есть значения например "Дом" по многим полям, как пройтись по всем полям и заменить их допустим на значение "нету" ?

PM MAIL   Вверх
Данкинг
Дата 8.4.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



В общем так:
Код

procedure TForm1.Button1Click(Sender: TObject);
var j,i:integer;
begin
 ado.first;
for j:=1 to ado.recordcount do
 begin
   for i:=1 to ado.FieldCount  do
     if pos('ДОМ',ansiuppercase(ado.Fields.fieldbynumber(i).AsString))<>0 then
      begin
       ado.Edit;
       ado.Fields.fieldbynumber(i).AsString:='НЕТ';
       ado.Post;
      end;
 ado.Next;
 end;
end;

ado - AdoTable


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
alf138
Дата 9.4.2010, 03:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Спасибо.
PM MAIL   Вверх
alf138
Дата 9.4.2010, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Но в ходе отладки возникла проблема, изменению поддаются значения только цифры 
Код

procedure TForm1.Button11Click(Sender: TObject);
var j,i:integer;
begin
Table1.First;
for j:= 1 to table2.RecordCount  do
begin
  for i:= 1 to Table2.FieldCount  do
    if pos(Edit6.Text, AnsiUpperCase(Table2.Fields.FieldByNumber(i).AsString))<>0  then
begin
Table2.Edit;
  Table2.Fields.FieldByNumber(i).AsString:=Edit7.Text;
    Table2.Post;
end;
Table2.Next;
end;
 
какое значение задать что выполнялось все корректно ?
PM MAIL   Вверх
Данкинг
Дата 9.4.2010, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(alf138 @  9.4.2010,  20:37 Найти цитируемый пост)
Но в ходе отладки возникла проблема, изменению поддаются значения только цифры 

Не понял, как так цифры? Перезаписывается значения всего поля.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
alf138
Дата 9.4.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Ну хочу я допустим поменять значение "дом" он его не поменяет а вот если я захочу поменять "111" поменяет, все нормально.
PM MAIL   Вверх
Frees
Дата 9.4.2010, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Код

   if pos(AnsiUpperCase(Edit6.Text), AnsiUpperCase(Table2.Fields.FieldByNumber(i).AsString))<>0  then

или просто UpperCase


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Данкинг
Дата 9.4.2010, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Ну так правильно Frees говорит: регистр-то учитывай.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
alf138
Дата 11.4.2010, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Опять появились проблемы ошибка 
Код

First chance exception at $75569617. Exception class EAccessViolation with message 'Access violation at address 005A7A02 in module 'Project1.exe'. Read of address 00000000'. Process Project1.exe (2804)

сам код 
Код

procedure TForm11.Button1Click(Sender: TObject);
var j,i:integer;
begin
Form1.Table1.First;
for j:= 1 to Form1.table1.RecordCount  do
begin
  for i:= 1 to form1.Table1.FieldCount  do
    if pos(AnsiUpperCase(Label2.Caption), AnsiUpperCase(Form1.Table1.Fields.FieldByNumber(i).AsString))<>0  then
begin
Form1.Table1.Edit;
  Form1.Table1.Fields.FieldByNumber(i).AsString:=Edit2.Text;
    Form1.Table1.Post;
end;
Form1.Table1.Next;
B:=True;
end;
B:=false;
  Form1.Table2.Edit;
    form1.Table2.Fields[1].Value:=Edit2.Text;
end;
  end.

и подсвечивает строку 
Код

    if pos(AnsiUpperCase(Label2.Caption), AnsiUpperCase(Form1.Table1.Fields.FieldByNumber(i).AsString))<>0  then


Добавлено через 10 минут и 9 секунд
Даже пробовал 
Код

procedure TForm11.Button1Click(Sender: TObject);
var j,i:integer;
begin
B:=False;
Form1.Table1.First;
for j:= 1 to Form1.table1.RecordCount  do
begin
  for i:= 1 to form1.Table1.FieldCount  do
    if pos('Семья', AnsiUpperCase(Form1.Table1.Fields.FieldByNumber(i).AsString))<>0  then
    ShowMessage('хорошо');
    begin

 выдает всю туже ошибку.
PM MAIL   Вверх
alf138
Дата 11.4.2010, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Вопрос решен.
PM MAIL   Вверх
Данкинг
Дата 11.4.2010, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



А в чём проблема-то была?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
alf138
Дата 11.4.2010, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Код

  for i:= 1 to Table1.FieldCount-1  do

"-1" надо было теперь вроде все работает.
PM MAIL   Вверх
Frees
Дата 11.4.2010, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(alf138 @  11.4.2010,  22:59 Найти цитируемый пост)
i:= 1

Код

i := 0




--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Данкинг
Дата 11.4.2010, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



По-моему, в случае FieldByNumber нумерация начинается с 1, а в случае FieldByName - с нуля. Впрочем, могу ошибаться.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.