ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

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

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

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

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

Репутация: 1821


Отправить сообщение для De-visible с помощью ICQ
По умолчанию

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
Провел на форуме:
15157

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

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

  #4  
Старый 06.04.2008, 22:06
AleksP
Познающий
Регистрация: 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".
 
Ответить с цитированием

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

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

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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[sql] Вопросы по БД FraiDex PHP, PERL, MySQL, JavaScript 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.XYZ