![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с полями [D7, MSSQL]
Рафик © (2004-08-06 11:11:00)У меня D7, Win 2000, MSSQL 2000 SP4, на SQL есть база с 68 полями, при подключении её в Делфях почему то часть полей теряется, что может быть подскажите.
Рафик (2004-08-09 08:23:00) [21]Вся проблема в том что это действующая программа, и я в ней поля менять не могу, разделять таблицы так как оригинальная програ работать не будет, мне то надо только некоторые данные извлекать.
Ega23 (2004-08-06 18:11:00) [22]Тады со всеми nvarchar у него точно больше 8000 per row
Nikolay M. (2004-08-06 18:08:00) [23]Пока вроде 2 было :?)
Обычно 2...
Ega23 (2004-08-06 18:05:00) [24]Юникод-символ сколько байт занимает?
Nikolay M. (2004-08-06 17:50:00) [25]
> Ega23 © (06.08.04 17:42) [28]
Угу, посмотри в БОЛ ремарки к CREATE TABLE :)
Ega23 (2004-08-06 17:42:00) [26]Суммарный размер полей за 8060 не вылезает?
Коля, а это ограничение? Я просто такого никогда не слышал, хотя, с другой стороны, я никогда таких диких таблиц не видел.
Nikolay M. (2004-08-06 17:32:00) [27]Суммарный размер полей за 8060 не вылезает?
Случайно не только nvarchar-ы теряются?
Ega23 (2004-08-06 17:31:00) [28]Ну что можно сказать?
1. почему столько NULL? Вот например, UnitType - наверняка вторичный ключ на tblUnitTypes.
2. Таблица денормализована до ужаса: всю информацию о User'е вынести в отдельную таблицу, а на неё вторичный ключ воткнуть. TechConditions тоже выкинуть нафиг в отдельную таблицу. И так далее. В общем - огромное ФИ проектировщику, так не делается.
3. А зачем nvarchar? Разве varchar недостаточно?
Рафик (2004-08-06 15:58:00) [29]if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUnitChar_FK00]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitChar] DROP CONSTRAINT tblUnitChar_FK00
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_tblUnitComp_tblUnits]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitComp] DROP CONSTRAINT FK_tblUnitComp_tblUnits
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUnitCondition_FK02]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitCondition] DROP CONSTRAINT tblUnitCondition_FK02
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUnitDetail_FK00]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitDetail] DROP CONSTRAINT tblUnitDetail_FK00
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUnitDoc_FK00]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitDoc] DROP CONSTRAINT tblUnitDoc_FK00
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUnitLog_FK00]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitLog] DROP CONSTRAINT tblUnitLog_FK00
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_tblUnitOperation_tblUnits]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitOperation] DROP CONSTRAINT FK_tblUnitOperation_tblUnits
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUnitSpec_FK00]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitSpec] DROP CONSTRAINT tblUnitSpec_FK00
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_tblUnitSurface_tblUnits]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[tblUnitSurface] DROP CONSTRAINT FK_tblUnitSurface_tblUnits
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUnits]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tblUnits]
GO
CREATE TABLE [dbo].[tblUnits] (
[UnitID] [int] IDENTITY (1, 1) NOT NULL ,
[ParentUnitID] [int] NULL ,
[GTPID] [int] NULL ,
[UnitNum] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NOT NULL ,
[UnitType] [int] NULL ,
[UnitName] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[IzdName] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[SbEdName] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[Material] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[Zagot] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[Tverdost] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[Order] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[PartVolume] [int] NULL ,
[UnitWeight] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[ZagotWeight] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[MaxTverdost] [float] NULL ,
[ControlGroup] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[ControlType] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[FirstCover] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[SecondCover] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[TechCondition1] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[TechCondition2] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[TechCondition3] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[TechCondition4] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[TechCondition5] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[TechCondition6] [varchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitSher] [int] NULL ,
[UnitQuality] [int] NULL ,
[Profile] [nvarchar] (150) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[EB] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[EN] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[NRash] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[KIM] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[KD] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitUserFullName] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitUserCheck] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitUserAgreed] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitUserMetrol] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitUserNCheck] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitUserNormir] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitDrawingName] [varchar] (255) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitDocSetNum] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitRefTPNum] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitCheckPerc] [float] NULL ,
[UnitOptional1] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitOptional2] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitOptional3] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitUserOTK] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitUserMater] [nvarchar] (100) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[Unit_TS] [timestamp] NULL ,
[UnitCadastorID] [int] NULL ,
[UnitAdded] [datetime] NULL ,
[UnitAddedBy] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitEdited] [datetime] NULL ,
[UnitEditedBy] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitAssignedTo] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitNoRecalcCode] [bit] NULL ,
[UnitAuditLog] [int] NULL ,
[UnitAuditDateFrom] [datetime] NULL ,
[UnitGUID] uniqueidentifier ROWGUIDCOL NULL ,
[UnitVariant] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitTsht] AS ([dbo].[fnUnitTimeSum]([UnitID], 1)) ,
[UnitTpz] AS ([dbo].[fnUnitTimeSum]([UnitID], 2)) ,
[UnitVedNum] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1251_CI_AS NULL ,
[UnitTehnoProM] [int] NULL ,
[UnitRevision] [int] NULL ,
[UnitState] [int] NULL
) ON [PRIMARY]
GO
bushmen (2004-08-06 15:57:00) [30]> MSSQL 2000 SP4
Это откуда? Кажись sp3a самый последний был :)
Ega23 (2004-08-06 15:54:00) [31]У меня складывается такое ощущение
У меня тоже такое-же ощущение. Вот я и прошу скрипт на создание таблицы.
Ega23 (2004-08-06 15:53:00) [32]А я не создавал её, и у меня нет данного скрипта!
Ну так сгенери, маленький что-ли? Enterprise Manager ведь у тебя есть?
В запросе данное поле не появляется!!!
Select top 1 * from.... сделай в QA и посмотри, сколько полей вернёт.
Sergey13 (2004-08-06 15:52:00) [33]У меня складывается такое ощущение (может пятница 8-), что unitName это поле из ДРУГОЙтаблицы.
Трудно искать черную кошку в темной комнате, особенно если ее там нет. (с)
8-)
Рафик (2004-08-06 15:51:00) [34]А я не создавал её, и у меня нет данного скрипта!
Рафик (2004-08-06 15:48:00) [35]В запросе данное поле не появляется!!!
TDK (2004-08-06 15:40:00) [36]>>есть база с 68 полями
В базе есть таблицы, а в них поля...
>>Хотя кстати UnitID, поле заполнено,а unitName нету!!!
Нету данных в поле или нет поля в таблице?
Ega23 (2004-08-06 15:33:00) [37]Слушай, ну не бывает чудес! Полей у тебя в таблице - 68, это из syscolumns видно. Записей в таблице - 483, это Count(*) выдаёт.
Покажи скрипт на создание таблицы, где Create Table.
Рафик (2004-08-06 15:23:00) [38]Хотя кстати UnitID, поле заполнено,а unitName нету!!!
Рафик (2004-08-06 15:15:00) [39]Нет это не я противоречу, это он противоречит, первый запрос был по конкретному полю, которого он не видит, а второй по подсчету записей, конечно, он там около 30 полей видит и в них есть запись, а поле UnitName он не видит и возвращает по нему пустое значение!!!
Ega23 (2004-08-06 15:06:00) [40]Возвращается пусто, т.е. данных нет!!!
Ты сам себе противоречишь. Или 483, или ничего, чудес не бывает.