HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Динамическое создание таблицы
  #1  
Старый 30.03.2008, 22:11
AleksP
Познающий
Регистрация: 02.03.2008
Сообщений: 33
С нами: 9574895

Репутация: 0
По умолчанию Динамическое создание таблицы

Таблица формируется динамически. Необходимо упорядочить строки таблицы по одному из столбцов.

1) Можно ли сформировать таблицу, сразу используя компонент TQuery?
2) Как можно это сделать, если использовать компонет TTable? Есть ли другие возможности, кроме TTable->TDataSource->TQuery->TDataSource?
 
Ответить с цитированием

  #2  
Старый 30.03.2008, 22:24
De-visible
Banned
Регистрация: 06.01.2008
Сообщений: 904
С нами: 9655526

Репутация: 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..
 
Ответить с цитированием

  #3  
Старый 30.03.2008, 22:56
AleksP
Познающий
Регистрация: 02.03.2008
Сообщений: 33
С нами: 9574895

Репутация: 0
По умолчанию

C++ Builder. А как упорядочить таблицу?
 
Ответить с цитированием

  #4  
Старый 06.04.2008, 22:06
AleksP
Познающий
Регистрация: 02.03.2008
Сообщений: 33
С нами: 9574895

Репутация: 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".
 
Ответить с цитированием

  #5  
Старый 07.04.2008, 13:26
o_OBallers
Banned
Регистрация: 11.10.2007
Сообщений: 54
С нами: 9781091

Репутация: 84
По умолчанию

У тебя какой подход к делу если Jet и access то там безошибочно выполняется, только выборка, insert тоже работает, но с ошибками.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[sql] Вопросы по БД FraiDex PHP 1193 16.06.2010 21:35
[mysql 5.1.19-beta-log] таблицы не прописаны в information_schema.tables je0n Уязвимости 2 04.01.2008 08:16
Создание простейшей системы поддержки принятия решений на основе пакета MS Office. lin Разное - Покупка, продажа, обмен 2 11.02.2006 22:06



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.