Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
1

Заполнить данные в таблице и сохранить в БД MySQL

14.08.2015, 09:41. Показов 1149. Ответов 4
Метки нет (Все метки)

Здравствуйте! Подскажите как пользователю добавить данные в таблице и сохранить его в БД MySQL?
(т.е. как в экселе заполнять сразу в таблице, а не через едит)

В StringGrid-е добавила данные, но сохранить в БД MySQL не получилось. На сколько я знаю в DBGrid-e нельзя добавлять данные в самой таблице. Может есть какие-то другие компоненты или функции?

Благодарю заранее!
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2015, 09:41
Ответы с готовыми решениями:

Как сохранить в таблице данные из другой таблицы?
Помогите как проще всего сделать вот так: У меня есть форма со вложенной подформой, где данные...

Заполнить и сохранить данные в текстовом файле в кодировке utf8
здравствуйте! люди подскажите !пару дней назад начал изучение языка С++,нужно написать программу...

Взять данные из grid и сохранить их в БД MySql
Вообщем данные вывел из БД в grid а теперь задача, сделать редактирование данных в таблице grid,...

Данные MySQL не отображаются в таблице JSF
Доброго времени суток! :) Пытаюсь вывести данные таблицы MySQL базы в dataTable JSF (MySQL из...

4
15 / 15 / 6
Регистрация: 31.01.2011
Сообщений: 177
15.08.2015, 17:14 2
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var n,m:integer;
    s:string;
..
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Table');
ADOQuery1.Open;
ADOQuery1.Active:=true;
ADOQuery1.Insert;
n:=StringGrid1.RowCount;   //количество строк грида, если нет закреплённых
m:=StringGrid1.ColCount;
for x:=0 to n-1 do
  begin
    for y:=0 to m-1 do
      begin
        Form4.ADOQuery1.Fields[x].AsString:=StringGrid1.Cells[y, x];
      end;
  end;
ADOQuery1.Post;
..
По-моему так... Исправьте, если не прав. Но такой код будет записывать в БД абсолютно всё, что содержится в StringGrid. Т.е., даже те данные, которые вы перед работой экспортируете из БД в сетку(если экспортируете, конечно).

А чем эдиты-то не устраивают? Мне кажется самый простой способ через эдит или дбэдит...
Если я правильно понял, вы заполнили StringGrid и эти же данные надо экспортировать в БД MySQL?

Добавлено через 6 минут
Delphi
1
Form4.ADOQuery1.Fields[y].AsString:=StringGrid1.Cells[y, x];
ошибочку допустил

Добавлено через 6 часов 56 минут
Нет. Неправильно. Извините, кого запутал.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.BitBtn1Click(Sender: TObject);
var y,x,n,m:integer;
    s:string;
begin
n:=StringGrid1.RowCount;   //количество строк грида, если нет закреплённых
m:=StringGrid1.ColCount;
for x:=0 to n-1 do
  begin
    ADOQuery1.Close;
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add('SELECT * FROM Table');
    ADOQuery1.Open;
    ADOQuery1.Active:=true;
    ADOQuery1.Insert;
    for y:=0 to m-1 do
      begin
        ADOQuery1.Fields[y].AsString:=StringGrid1.Cells[y, x];
      end;
    ADOQuery1.Post;
  end;
end;
Так вот верно
Просто только до дома добрался и решил проверить)
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
17.08.2015, 10:30  [ТС] 3
Спасибо за помощь! Теперь хотела через модуль сделать выводит ошибку. You have an sintaksys error...

В общем код написала так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
unit Unit6;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids;
 
type
  TForm6 = class(TForm)
    StringGrid1: TStringGrid;
    Button1: TButton;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form6: TForm6;
  List: TStringList;
  i, j: Integer;
 
implementation
 
uses Unit5;
 
{$R *.dfm}
 
procedure TForm6.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,0]:='№';
StringGrid1.Cells[1,0]:='Наименование';
StringGrid1.Cells[2,0]:='Ед.изм';
StringGrid1.Cells[3,0]:='Кол-во';
end;
 
procedure TForm6.Button1Click(Sender: TObject);
var y,x,n,m:integer;
    s:string;
begin
n:=StringGrid1.RowCount;
m:=StringGrid1.ColCount;
for x:=0 to n-1 do
  begin
    DataModule5.ADOQuery1.Close;
    DataModule5.ADOQuery1.SQL.Clear;
    DataModule5.ADOQuery1.SQL.Add('SELECT * FROM group');
    DataModule5.ADOQuery1.Open;
    DataModule5.ADOQuery1.Active:=true;
    DataModule5.ADOQuery1.Insert;
    for y:=0 to m-1 do
      begin
        DataModule5.ADOQuery1.Fields[y].AsString:=StringGrid1.Cells[y, x];
      end;
    DataModule5.ADOQuery1.Post;
  end;
 end;
end.
В Unit5 все подключение к БД идет успешно. Имя не изменяла остался также DataModule5 в Unit5. Как сделать с помощь модуля правильный код?

Благодарю заранее!
0
15 / 15 / 6
Регистрация: 31.01.2011
Сообщений: 177
17.08.2015, 10:56 4
Если у вас есть фиксированная строка, то я предлагаю вам сделать
Delphi
1
for x:=1 to n-1 do
Если выдаёт "Ошибка синтаксиса в предложении FROM", то скорей всего "group" это зарезервированное SQL слово. Придумайте новое имя для сущности.
1
5 / 5 / 5
Регистрация: 13.11.2014
Сообщений: 325
17.08.2015, 11:53  [ТС] 5
Sheeby, благодарю. Действительно group нужно было переименовать. Работает без ошибок. Только заполненные данные в БД не отражаются. Там все отражается в значении NULL. Из-за чего может быть такое?


Спасибо большое за помощь!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2015, 11:53

Не могу сохранить данные в базу данных mysql
У меня есть объект DataGridView, в который я загружаю данные из базы данных,а после меняю данные в...

Выбор данных из MySQL (разные данные в 1 таблице)
Есть MySQL таблица с полями: id, title, description, keywords. Значение id всегда равно 1 и поэтому...

Firefox неверно обновляет данные в таблице MySql ?
Здравствуйте! Есть простой счетчик кол-во просмотров статьи, к последнему просмотру +1 Проблема...

Как сохранить и удалить данные в mysql по нажатию кнопки
Доброго времени суток! Подскажите пожалуйста, как сохранить и удалить данные в mysql по нажатию...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru