Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Динамическое создание таблицы |

30.03.2008, 22:11
|
|
Познающий
Регистрация: 02.03.2008
Сообщений: 33
Провел на форуме: 15157
Репутация:
0
|
|
Динамическое создание таблицы
Таблица формируется динамически. Необходимо упорядочить строки таблицы по одному из столбцов.
1) Можно ли сформировать таблицу, сразу используя компонент TQuery?
2) Как можно это сделать, если использовать компонет TTable? Есть ли другие возможности, кроме TTable->TDataSource->TQuery->TDataSource?
|
|
|

30.03.2008, 22:24
|
|
Banned
Регистрация: 06.01.2008
Сообщений: 904
Провел на форуме: 4037638
Репутация:
1821
|
|
delphi?
Если да то вот:
Код:
unit gridcalc;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, Grids, DBGrids, ExtCtrls, DBCtrls, DB,
DBTables, StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure TaxAmountCalc(DataSet: TDataset);
private
TaxAmount: TFloatField;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.TaxAmountCalc(DataSet: TDataset);
begin
Dataset['TaxAmount'] := Dataset['ItemsTotal'] *
(Dataset['TaxRate'] / 100);
end;
procedure TForm1.FormCreate(Sender: TObject);
var
MyTable: TTable;
MyDataSource: TDataSource;
MyGrid: TDBGrid;
begin
MyTable := TTable.Create(Self);
with MyTable do
begin
DatabaseName := 'DBDemos';
TableName := 'Test.DB';
OnCalcFields := TaxAmountCalc;
with FieldDefs do
begin
Add('ItemsTotal', ftCurrency, 0, false);
FieldDefs[0].CreateField(MyTable);
Add('TaxRate', ftFloat, 0, false);
FieldDefs[1].CreateField(MyTable);
TFloatField(Fields[1]).DisplayFormat := '##.0%';
TaxAmount := TFloatField.Create(MyTable);
with TaxAmount do
begin
FieldName := 'TaxAmount';
Calculated := True;
Currency := True;
DataSet := MyTable;
Name := MyTable.Name + FieldName;
MyTable.FieldDefs.Add(Name, ftFloat, 0, false);
end;
end;
MyTable.CreateTable;
end;
MyDataSource := TDataSource.Create(Self);
MyDataSource.DataSet := MyTable;
MyGrid := TDBGrid.Create(Self);
with MyGrid do
begin
Parent := Self;
Align := alClient;
DataSource := MyDataSource;
end;
MyTable.Active := True;
Caption := 'Новая таблица ' + MyTable.TableName;
end;
end.
Вот ссылка на полную статью _http://www.delphisources.ru/pages/faq/base/create_table_and_fields.html
-----------------------------------------
_http://www.traktat.ru/tr/referats/id.11631.html - реферат на эти компоненты
------------------------------------------
Если Borland C++ Builder:
_http://inprise.narod.ru/cbuilder/archives/bcba/book.cgi_book_cbuilder_i_943366575.html
Последний раз редактировалось De-visible; 30.03.2008 в 22:32..
|
|
|

30.03.2008, 22:56
|
|
Познающий
Регистрация: 02.03.2008
Сообщений: 33
Провел на форуме: 15157
Репутация:
0
|
|
C++ Builder. А как упорядочить таблицу?
|
|
|

06.04.2008, 22:06
|
|
Познающий
Регистрация: 02.03.2008
Сообщений: 33
Провел на форуме: 15157
Репутация:
0
|
|
Можно привести код, который формирует таблицу с использованием компонента TQuery?
Попробовал два варианта, но оба выдают ошибку.
Первый вариант:
Query1->Close();
Query1->DatabaseName="c:\\";
Query1->SQL->Clear();
Query1->SQL->Text = "CREATE TABLE \"Table1.db\" (field1 int,field2 int)";
Query1->ExecSQL();
Query1->SQL->Clear();
Query1->SQL->Text = "INSERT INTO \"Table1.db\" (field1, field2) VALUES (10,20)";
Query1->ExecSQL();
Query1->Active = true;
выдает сообщение об ошибке "Error creating cursor handle".
Второй вариант:
Query1->Close();
Query1->DatabaseName="c:\\";
Query1->SQL->Clear();
Query1->SQL->Add("CREATE TABLE \"Table1.db\" (field1 int,field2 int)");
Query1->ExecSQL();
Query1->SQL->Clear();
Query1->SQL->Add("INSERT INTO \"Table1.db\" (field1, field2) VALUES (10,20)");
Query1->Open();
выдает сообщение об ошибке "Insufficient memory for this operation".
|
|
|

07.04.2008, 13:26
|
|
Banned
Регистрация: 11.10.2007
Сообщений: 54
Провел на форуме: 86268
Репутация:
84
|
|
У тебя какой подход к делу если Jet и access то там безошибочно выполняется, только выборка, insert тоже работает, но с ошибками.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|