Николай К.
23 сообщения
#17 лет назад
Хочу изменить ячейку таблицы программным путем...

Вот текст:


unit t1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, StdCtrls, Grids, DBGrids;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
DBNavigator1: TDBNavigator;
Table1: TTable;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if opendialog1.Execute then
begin
table1.Active:=false;
table1.TableName:=opendialog1.FileName;
table1.Active:=true;
end;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
table1.Post;
table1.Active:=true;
savedialog1.FileName:=table1.TableName;
savedialog1.Execute;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
table1.ReadOnly:=false;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
table1.State:=dsEdit;

Вот здеcь ошибка и надпись "Cannot assign to a read-only property"


table1.RecNo:=2;
table1.FieldByName('Name'.AsString:='AAAAAAAAAA';
end;

end.
Павел Л.
233 сообщения
#17 лет назад
Цитата:
Вот здеcь ошибка и надпись "Cannot assign to a read-only property"
Свойство State предназначено только для чтения.

Для изменения надо:

Table1.Edit;
Table1.FieldByName('Name'.AsString := 'something';
Table1.Post;
Николай К.
23 сообщения
#17 лет назад
Большое спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Николай К.
23 сообщения
#17 лет назад
Спасибо, с этим разобрался...
Вопрос №2:

Хочу сохранить таблицу после модификации...
Если я изменял таблицу вручную, то все ОК, а если программно, то вылазиет ошибка

"Table1: DataSet not in edit or insert mode"....

А сохранение у меня делается так:

table1.Post;
table1.Active:=true;
savedialog1.FileName:=table1.TableName;
savedialog1.Execute;



Help me, please...
Владимир Шишкин
55 сообщений
#17 лет назад
Table1.Insert;
вставка записи
Table1.Append вставляет запись как последнию.
Михаил П.
6 сообщений
#17 лет назад
Цитата ("ragap"):

А сохранение у меня делается так:

table1.Post;
table1.Active:=true;
savedialog1.FileName:=table1.TableName;
savedialog1.Execute;


Бред. Полный.
Покажи пальцем, где тут сохранение в таблицу? Вижу открытие диалога сохраения файла с именем таблицы.
Также вижу совершенно бессмысленный Post.

P.S. Господа, я плакаль, я рыдал, почитав этот форум. Есть же специальные форумы для программистов-начинающих. Ну здесь же люди предлагают свои услуги в качестве программистов. Бедные заказчики....
P.P.S. Хотел проект открыть. Программист нужен. Но тут этого делать видимо не буду. Поищу в местах где есть профессионалы, а не программисты-недоучки.

Ф топку.
Егор Ливитин
3914 сообщений
#17 лет назад
SoftCompany, то, что ragap просит помощи в решении достаточно простой задачи не означает, что в сервисе нет профессиональных программистов.
Михаил П.
6 сообщений
#17 лет назад
Цитата ("Weblancer"):
SoftCompany, то, что ragap просит помощи в решении достаточно простой задачи не означает, что в сервисе нет профессиональных программистов.


Я не спорю с администрацией, так что не банить

Просто маленькое замечание: есть специальные форум для начинающих (взять хотябы DelphiMaster). Там положено вопросы задавать. Есть справочная система (для любого языка программирования), если, на крайний случай, книжки и поисковики.

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

Далее, как можно охаректизовать программиста (фрилансера) у которого в профиле одни Web-сайты, а он подает заявку на работу, которую даже не представляет как выполнять (навеяно одним проектом, вопросы по нему уже в 30 форумах нашел)?

Мне кажется самому сервису должно быть, ну пусть не стыдно, но хотябы не комфортно...

Спасибо!

P.S. Наболело... Если что - удалите пост нафиг.
Сергей П.
23 сообщения
#17 лет назад
По мне, так лучше Query или ADOQuery.
SQL конечно надо знать! А куда сейчас без него?
Михаил П.
6 сообщений
#17 лет назад
Цитата ("_sky"):
По мне, так лучше Query или ADOQuery.
SQL конечно надо знать! А куда сейчас без него?

А я бы вообще пользовался спец. компонентами. Или низкоуровневым доступом к БД (что на порядок выше по скорости).
ADO, BDE и иже с ними - ф топку.
Но это вопрос отдельный, из серии, что предпочтительнее.
Сдесь же - вопрос по основам работы с БД в Delphi.
Сергей П.
23 сообщения
#17 лет назад
Цитата:
P.S. Господа, я плакаль, я рыдал, почитав этот форум.

Вы так переживаете за ragap??? Да не переживайте вы так.

Цитата:
Сдесь же - вопрос по основам работы с БД в Delphi.

Тема всё равно уже раскрыта.
Влад Ш.
2 сообщения
#17 лет назад
{ Table1: DataSet not in edit or insert mode"....}

EDIT;
//монипуляции со значениями полей
POST;

метод Post нужно использоватьв связке с Edit.
Влад Ш.
2 сообщения
#17 лет назад
Я смртрел ... смотрел на код ... так и не понял
ЗАЧЕМ ИМЕНИ ФАЙЛА В ДИАЛОГЕ ПРИСВАИВАТЬ ИМЯ ТАБЛИЦЫ????????