Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание таблиц с помощью IBSQL


Александр_н ©   (2005-11-02 15:47:00) 

Подскажите как можно создать таблицу(копию существующей) с помощью IBSQL. Я не нашёл информации в Help. И поступил так:
IBSQL1.Close;
IBSQL1.SQL.Clear;
IBSQL1.SQL.Add('create table test2 (');
for i:=0 to IBQuery2.FieldCount-1 do
 begin
 IBSQL1.SQL.Add(IBQuery2.Fields[i].FieldName+' ');
 case IBQuery2.Fields[i].DataType of
 ftinteger: IBSQL1.SQL.Add('integer');
 ftstring : IBSQL1.SQL.Add('varchar('+IntToStr(IBQuery2.Fields[i].DataSize)+
            ') COLLATE PXW_CYRL');
 end; //case
 if i<>IBQuery2.FieldCount-1 then
   IBSQL1.SQL.Add(',');
 end;
IBSQL1.SQL.Add(')');
IBSQL1.ExecQuery;
Сработало, но тогда в case необходимо перечислять все типы полей, да и некрасиво это как-то. Если возможно приведите пример. Спасибо.


Виталий Панасенко   (2005-11-02 16:04:00) [1]

Лучше не изобретать велосипед, а использовать IBExpert.. если, конечно, таблицы не в ран-тайме создаются...Просто извлек метаданные, записал в файл, принес, куда нужно, выполнил скрипт...той же ISQL


Johnmen   (2005-11-02 16:03:00) [2]

Не прокатит....


ANB   (2005-11-02 15:55:00) [3]

если create table as select * from Table1 не прокатит (это из оракла), то, видимо, ты на верном пути. Имхо.


Desdechado   (2005-11-02 15:54:00) [4]

копия структурная? или со всеми взаимосвязями?
рекомендую посмотреть в сторону системных таблиц IB (их описание есть в документации)


Наверх

Титульная страница Поиск, карта сайта Написать письмо