Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2013, 08:21   #1
hemn6vyr
Пользователь
 
Регистрация: 18.06.2012
Сообщений: 67
По умолчанию Удаление строки ado

Код:
Function ReadDB(Table, Column, Value: String): TStringList; Stdcall;
  Var
    I: Integer;
  Begin
    Try
      Result := TStringList.Create;
      Query.Close;
      Query.SQL.Clear;
      Query.SQL.Add('SELECT * FROM [' + Table + '] WHERE ' + Column + ' = ' + #39 + Value + #39);
      Query.Open;
      For I := 1 To 5 Do
        Begin
          Result.Add(StrBreak(Query.Fields[I].AsString, '|', 0, 1));
          Result.Add(StrBreak(Query.Fields[I].AsString, '|', 1, 1));
          Result.Add(StrBreak(Query.Fields[I].AsString, '|', 2, 1));
          Result.Add(StrBreak(Query.Fields[I].AsString, '|', 3, 1));
        End;
    Except
      On E: Exception Do
        Begin
          ShowMessage('Except = ' + E.ClassName + '; Exceptmess = ' + E.Message);
        End;
    End;
  End;
Вот так я читаю таблицу, как мне после прочтения удалить прочтённую строку?
hemn6vyr вне форума Ответить с цитированием
Старый 16.04.2013, 09:10   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Цитата:
после прочтения удалить прочтённую строку
зачем?
наверное подразумевалось это?
Код:
Function ReadDB(Table, Column, Value: String): TStringList; Stdcall;
  Var
    I: Integer;
  Begin
    Try
      Result := TStringList.Create;
      Query.Close;
      Query.SQL.Clear;
      Query.SQL.Add('SELECT * FROM [' + Table + '] WHERE ' + Column + ' = ' + #39 + Value + #39);
      Query.Open;
      while not Query.Eof do
      begin
        For I := 1 To 5 Do
          Begin
            Result.Add(StrBreak(Query.Fields[I].AsString, '|', 0, 1));
            Result.Add(StrBreak(Query.Fields[I].AsString, '|', 1, 1));
            Result.Add(StrBreak(Query.Fields[I].AsString, '|', 2, 1));
            Result.Add(StrBreak(Query.Fields[I].AsString, '|', 3, 1));
          End;
        Query.Next;
      end;
    Except
      On E: Exception Do
        Begin
          ShowMessage('Except = ' + E.ClassName + '; Exceptmess = ' + E.Message);
        End;
    End;
  End;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 17.04.2013, 16:09   #3
hemn6vyr
Пользователь
 
Регистрация: 18.06.2012
Сообщений: 67
По умолчанию

Цитата:
Сообщение от Yurk@ Посмотреть сообщение
зачем?
наверное подразумевалось это?
Код:
Function ReadDB(Table, Column, Value: String): TStringList; Stdcall;
  Var
    I: Integer;
  Begin
    Try
      Result := TStringList.Create;
      Query.Close;
      Query.SQL.Clear;
      Query.SQL.Add('SELECT * FROM [' + Table + '] WHERE ' + Column + ' = ' + #39 + Value + #39);
      Query.Open;
      while not Query.Eof do
      begin
        For I := 1 To 5 Do
          Begin
            Result.Add(StrBreak(Query.Fields[I].AsString, '|', 0, 1));
            Result.Add(StrBreak(Query.Fields[I].AsString, '|', 1, 1));
            Result.Add(StrBreak(Query.Fields[I].AsString, '|', 2, 1));
            Result.Add(StrBreak(Query.Fields[I].AsString, '|', 3, 1));
          End;
        Query.Next;
      end;
    Except
      On E: Exception Do
        Begin
          ShowMessage('Except = ' + E.ClassName + '; Exceptmess = ' + E.Message);
        End;
    End;
  End;
Нет, к сожалению не это, там поле уникальное, значения не повторяются, просто нужно считать и удалить, а потом будет сохраняться снова :-)
Тоесть считать => удалить => редактировать считанное => записать после редактирования
hemn6vyr вне форума Ответить с цитированием
Старый 17.04.2013, 16:15   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
Тоесть считать => удалить => редактировать считанное => записать после редактирования
а почему бы не
прочитать => редактировать => сохранить(обновить) редакцию в ТОЙ же записи.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 17.04.2013 в 16:18.
evg_m вне форума Ответить с цитированием
Старый 17.04.2013, 16:18   #5
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

ну тогда после считывания делать:
Код:
Query.SQL.Add('DELETE FROM [' + Table + '] WHERE ' + Column + ' = ' + #39 + Value + #39);
Query.ExecSQL;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 17.04.2013, 16:21   #6
hemn6vyr
Пользователь
 
Регистрация: 18.06.2012
Сообщений: 67
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
а почему бы не
прочитать => редактировать => сохранить(обновить) редакцию в ТОЙ же записи.
Можно и так, только как это реализовать?
hemn6vyr вне форума Ответить с цитированием
Старый 17.04.2013, 16:28   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от hemn6vyr Посмотреть сообщение
Можно и так, только как это реализовать?
или я чего-то не понимаю, или Вы забыли про UPDATE
Код:
UPDATE ИмяТаблицы
  set Поле1 = НовоеЗначениеПоля1,
       Поле2 = НовоеЗначениеПоля2,
...
       ПолеN = НовоеЗначениеПоляN
WHERE CODE = КодЗаписи
code - это ключевое поле.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BDGrid и ADO (Удаление строк) Psayker Помощь студентам 2 26.03.2012 16:56
Удаление записи. ADO Rekky БД в Delphi 13 02.11.2011 12:46
Логическое удаление в ADO Айдар БД в Delphi 1 22.12.2010 13:56
Удаление текущей записи Ado palochka БД в Delphi 8 20.05.2010 11:42
Удаление в связаных таблицах ADO Alexsandr БД в Delphi 7 18.02.2008 23:15