powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Размер поля из TQuery для создания новой таблицы?
6 сообщений из 6, страница 1 из 1
Размер поля из TQuery для создания новой таблицы?
    #32226958
Алексей_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как узнать размер поля в физической базе через произвольный запрос TQuery для баз *.db и *.dbf ?
Давно есть идея написать процедуру, которая бы создавала динамически бузу и сохраняла бы результат запроса Query (*.db или *.dbf) в новую базу.
Имя поля и тип узнать легко:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Razd := ' ';
for i :=  0  to Query1.FieldDefs.Count -  1  do
begin
  case Query1.Fields[i].DataType of
    ftDate: st := st + Razd + Query1.Fields[i].FieldName+' DATE';
    ftString: st := st + Razd + Query1.Fields[i].FieldName+' CHAR('+inttostr(Query1.Fields[i].Size)+')';
    ..
  end;
  Razd := ',';
end;

Размер текстового поля известен Query1.Fields [ i ].Size, а вот как узнать размер числовых и вещественных полей ?
Может кто уже решал подобную задачу ?

Можно конечно делать тип просто NUMERIC без указания размерности, но тогда будут создаваться поля NUMERIC(20,4) что будет довольно таки избыточно и не всегда допустимо по формату использования в программах жестко настроенных на формат полей.
...
Рейтинг: 0 / 0
Размер поля из TQuery для создания новой таблицы?
    #32226963
dragonx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vse eot mojno delat sredstavmi SQL
"Create table xxxx.dbf as select ...."
udachi ...
...
Рейтинг: 0 / 0
Размер поля из TQuery для создания новой таблицы?
    #32228102
Алексей_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня Делфи5 и доступ к базам *.db и *.dbf через стандартные TTable и TQuery.

create table test1 as select * from test2.DBF

Ни в Делфийском TQuery ни в SQLExplorer не работает, кричит:
Invalid use keyword.
Token: as

Может это работает через ADOQuery ?
Тогда может кто подскажет "чайнику ADO" что нужно прописать для соединения с dbf через ADO в ConnectionString для dbase IV ?
Пишу
Provider=Microsoft.Jet.OLEDB.4.0;User ID=1;Data Source=c:\;Mode=ReadWrite|Share Deny None;Extended Properties=dBase IV;Persist Security Info=False

С такой строчкой при conected:=true в дизайнере он кричит: Не удается запустить приложение. Системная база данных отсутствует или открыта с монопольным доступом другим пользователем.
В чем причина ?
-----
А ADO хоть с DBF пропустит(create table test1 as select * from test2.DBF) ?
А может все же есть еще другой способ без ADO ?
...
Рейтинг: 0 / 0
Размер поля из TQuery для создания новой таблицы?
    #32228103
dragonx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
est` takoi component nazivaetsya TBachMove,
(v nazvanii mogu nemnogo oshibitsya)
...
Рейтинг: 0 / 0
Размер поля из TQuery для создания новой таблицы?
    #32229485
Алексей_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Компонент называется tbaTchmove, да действительно он упрощает жизнь, ненужно писать самому процедуру создания базы анализируя типы полей, но он имеет тот же недостаток что и та процедура которую я написал:
вещественные значения он делает Numeric (20,4) и целые больше чем в базе были.
Похоже это все же так просто победить нельзя.

Люди у кого работает связка create table test1 as select * from test2.DBF на DBF-ах или на других базах, а у Вас как с размерностью числовых полей после create table as ?
Т.е. они идентичны источнику или как и при TBatchMove размерность у числовых полей увеличивается ?
...
Рейтинг: 0 / 0
Размер поля из TQuery для создания новой таблицы?
    #32229497
dragonx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Na schet dlini polei u menya bili prikoli
kogda ya sozdaval tablicu v Oracle as select
polya tekstovie to je sozdavalis` po maximumu,
v Selecte ya delal SubStr(Field,20) NField naprimer, i tablica togda sozdavalas
NField Varchar(20), poprobui
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Размер поля из TQuery для создания новой таблицы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]