Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.75/16: Рейтинг темы: голосов - 16, средняя оценка - 4.75
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552

Редактирование записи в бд

06.07.2012, 10:52. Показов 3481. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем суть в том что есть две таблицы AUTO_LIST и NEW_TABLE
в NEW_TABLE необходимо записать в столбце FIELDNAME - gList.Columns[0].FieldName


пытаюсь записать так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TBDForm.gListColumnMoved(Sender: TObject; FromIndex,
  ToIndex: Integer);
begin
   ID := q.Fields[0].AsInteger;
   tW.StartTransaction;
   s.SQL.Clear;
 
   q.SQL.Add('SELECT * FROM NEW_TABLE');
 
   s.SQL.Text := Format('update NEW_TABLE set FIELDNAME = %s where ID=' ,[gList.Columns[0].FieldName, ID]);
   s.ExecQuery;
 
 
   tW.Commit;
 
 
end;

но получаю DYNAMIC SQL ERROR
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.07.2012, 10:52
Ответы с готовыми решениями:

Редактирование записи
Приветствую. Такая проблема. Нужно сделать редактирование записей в таблице. Запись редактируется, но только та, которая идет первая в...

Редактирование записи
Программа пишет ошибку "Не найдено поле в ADOQqery1 Id_FIO" Подскажите, пожалуйста, как исправить или переделать? Хотя вроде это поле -то у...

редактирование записи
Здравствуйте! Помогите пожалуйста. У меня есть форма на которой отображается записи таблицы. Мне нужно сделать редактирование записи, той...

33
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.07.2012, 14:23
Студворк — интернет-сервис помощи студентам
Mr.Sandman, читайте справку... QuotedStr
1
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
06.07.2012, 14:54
Delphi
1
QuotedStr();
1
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
09.07.2012, 11:43  [ТС]
Цитата Сообщение от HyperZen Посмотреть сообщение
QuotedStr();
Три дня я мучился)))) Все теперь работает!

Добавлено через 5 минут
А вот как нибудь можно считать данные из бд с помощью s.sql.Text := Format(); ?
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
09.07.2012, 11:49
Цитата Сообщение от Mr.Sandman Посмотреть сообщение
А вот как нибудь можно считать данные из бд с помощью
Можно. А нужно?
1
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
09.07.2012, 11:56  [ТС]
Да, для этого и записывалось)

Надо циклом считать данные из таблицы.
Delphi
1
2
3
4
5
6
7
8
9
 for i  := 0 to gList.Columns.Count - 1 do begin
 
    q.SQL.Text := Format('select * from new_table where id=%d', [i]);
    q.Open;
 
   gList.Columns[i].Width := q.FieldByName('WIDTH').AsInteger;
 
 
  end;
Только здесь тоже косяк
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
09.07.2012, 12:26
Что-то я не понял, что мы на выходе хотим получить?
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
09.07.2012, 12:29  [ТС]
Цитата Сообщение от HyperZen Посмотреть сообщение
что мы на выходе хотим получить?

В общем в бд заносятся caption, fieldname, width столбцов DBGrida

А нужно что бы в onShow формы данные из бд считывались и настраивали столбцы grida.
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
09.07.2012, 12:41
Попробуй так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  PathFileDBGrid: string;
.....
procedure TfrmMain.FormCreate(Sender: TObject);
begin
// папка размещения файлов настроек Грида, ...
  PathFileDBGrid := (ExtractFilePath(Application.ExeName) + DBGrid1.Name + '.cw');
 
// загружаем настройки ширины колонок Грида из файла
  if not FileExists(PathFileDBGrid) then Exit;
  DBGrid1.Columns.LoadFromFile(PathFileDBGrid);
end;
 
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
// сохраняем настройки ширины колонок Грида в файл
  try
    DBGrid1.Columns.SaveToFile(PathFileDBGrid);
  except
    Application.MessageBox(PChar('Ошибка записи файла настроек ' + PathFileDBGrid), 'Ошибка!', MB_OK+MB_ICONERROR);
  end;
end;
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
09.07.2012, 12:50  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[DELPHI]procedure TBDForm.Button1Click(Sender: TObject);
var i : Integer;
begin
 
 
 
      for i := 0 to gList.Columns.Count - 1 do begin
 
        q.SQL.Text := Format('select * from NEW_TABLE where id=%d', [i]);
        q.Open;
 
        gList.Columns[i].Width := q.FieldByName('WIDTH').AsInteger;
        gList.Columns[i].FieldName := q.FieldByName('FIELDNAME').AsString;
        gList.Columns[i].Title.Caption := q.FieldByName('CAPTION').AsString;
 
     end;
 q.Free;
end;

Так пробую, но то же ошибка.[/DELPHI]

Добавлено через 1 минуту
HyperZen, это конечно здорово, но нужно просто маленьким циклом считать.

Добавлено через 4 минуты
На этот цикл он мне выдает "q.Filed 'MARKA' not found " вот при чем тут эта марка из другой таблицы?
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
09.07.2012, 13:18
Цитата Сообщение от Mr.Sandman Посмотреть сообщение
На этот цикл он мне выдает "q.Filed 'MARKA' not found " вот при чем тут эта марка из другой таблицы?
Посмотри ADOQuery - Fields Editor, видно там создано это поле.
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
10.07.2012, 09:59  [ТС]
Цитата Сообщение от HyperZen Посмотреть сообщение
ADOQuery
я использую компоненты Inter Base. Но все равно посмотрю)

Добавлено через 14 часов 5 минут
Цитата Сообщение от HyperZen Посмотреть сообщение
Fields Editor
не нашел такого свойства( Может у IBQuery есть аналог этого свойства?
0
73 / 73 / 12
Регистрация: 27.03.2012
Сообщений: 249
10.07.2012, 10:17
Цитата Сообщение от Mr.Sandman Посмотреть сообщение
е нашел такого свойства( Может у IBQuery есть аналог этого свойства?
Двойной щелчек по IBQuery или через контекстное меню
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
10.07.2012, 10:56  [ТС]
Цитата Сообщение от Nakama Посмотреть сообщение
IBQuery или через контекстное меню
так вот о чем речь шла.Как к ним программно подойти? Но это конечно хорошо, у меня там 6 полей. Как бы перед тем как таблица начнет загружаться в DBGrid, применить цикл, а потом подгрузить таблицу?

Добавлено через 22 минуты
В общем я понял, я на кнопку вешаю
Delphi
1
2
q.SQL.Text := Format('select * from NEW_TABLE where id=%d', [i]);
q.Open;
и он уже орет на марку.
0
 Аватар для Mr.Sandman
42 / 59 / 15
Регистрация: 19.12.2011
Сообщений: 552
11.07.2012, 11:12  [ТС]
Проблему решил следующим образом.
Добавил еще один компонент IBQuery и с помощью него загружаю свойства из бд) Всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2012, 11:12

Редактирование записи
Помогите разобраться с ошибкой. Нажимаю на запись из таблицы, загружаются инпуты соответствующими значениями, но при нажатии на кнопку...

Редактирование записи
Использую тот же код, что и для добавления. только ADOQuery1.Edit; вместо Append. Текущая запись не изменяется. Просто создается новая. В...

Редактирование записи
Есть вот такой код на JScript-е: <% var db = Server.CreateObject("ADODB.Connection"); db.Mode = 3; // adModeReadWrite ...

Редактирование записи по ID
у меня вот тожеж проблема, я уже все мозги себе проел, мб подскажете что я не так делаю? надо редактировать запись в бд по ид, а у меня...

Редактирование записи в БД
Всем привет. Сразу скажу новичок. Для редактирования записи в бд, сделал метод public function SaveChangeTest($id){ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru