Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Проблема с полями   Найти похожие ветки 

 
Рафик   (2004-08-06 11:11) [0]

У меня D7, Win 2000, MSSQL 2000 SP4, на SQL есть база с 68 полями, при подключении её в Делфях почему то часть полей теряется, что может быть подскажите.


 
Sandman25 ©   (2004-08-06 11:12) [1]

1. Какой запрос
2. Какие поля заданы в design+time


 
Рафик   (2004-08-06 11:13) [2]

Простой
Select *
From tblUnits


 
Sandman25 ©   (2004-08-06 11:14) [3]

[2] Рафик   (06.08.04 11:13)

На второй мой вопрос ответить можете?


 
Ega23 ©   (2004-08-06 11:19) [4]

при подключении её в Делфях почему то часть полей теряется,

Каким образом теряется: не выводится в грид, или ColumnCount меньше 68? Какого типа поля?


 
Рафик   (2004-08-06 11:24) [5]

Теряется в Грид, и по ColumnCount меньше, теряется поле например UnitName (50) nvarchar.


 
Рафик   (2004-08-06 11:25) [6]

2. Какие поля заданы в design+time

Не понял вопроса, такие поля присутствуют, около 10. Если я про это


 
Sandman25 ©   (2004-08-06 11:32) [7]

[6] Рафик   (06.08.04 11:25)

Двойной щелчок на гриде - есть колоник? И если есть, то все 68?
Двойной щелчок на Table/Query - есть поля? И если есть, то все 68?


 
Ega23 ©   (2004-08-06 11:36) [8]

Вообще-то странно.
Открой этот запрос через Query и ColumnCount посмотри.

И ещё: что вернёт вот такой запрос
select X=Count(*)
from syscolumns SC, sysobjects SO
where
SC.ID=SO.ID and
SO.id = object_id(N"[tblUnits]")


 
Рафик   (2004-08-06 14:24) [9]

На запрос выдает 68, я ставлю компонент DBLookupComboBox, мне нужно сделать выбор по конкретному полю UnitName (50) nvarchar, его нету в выборе, я вношу его в ручную в свойства KeyField, он говорит "Field Unit Name not found" , вот так то, а запрос то обрабатывается на сервере поэтому как бы все нормально, я пробовал на Acsess, такое же сотворить, он все видит, я в тупике.


 
Ega23 ©   (2004-08-06 14:36) [10]

Ну так и делай Select UnitID, UnitName from tblUnits. Нафига всю таблицу-то для LookupCombo тащить???


 
Рафик   (2004-08-06 14:39) [11]

Возвращается пусто, т.е. данных нет!!!


 
Ega23 ©   (2004-08-06 14:49) [12]

Так может у тебя таблица пустая?

Каков результат Select X=Count(*) from tblUnits?


 
Рафик   (2004-08-06 15:03) [13]

483


 
Ega23 ©   (2004-08-06 15:06) [14]

Возвращается пусто, т.е. данных нет!!!

Ты сам себе противоречишь. Или 483, или ничего, чудес не бывает.


 
Рафик   (2004-08-06 15:15) [15]

Нет это не я противоречу, это он противоречит, первый запрос был по конкретному полю, которого он не видит, а второй по подсчету записей, конечно, он там около 30 полей видит и в них есть запись, а поле UnitName он не видит и возвращает по нему пустое значение!!!


 
Рафик   (2004-08-06 15:23) [16]

Хотя кстати UnitID, поле заполнено,а unitName нету!!!


 
Ega23 ©   (2004-08-06 15:33) [17]

Слушай, ну не бывает чудес! Полей у тебя в таблице - 68, это из syscolumns видно. Записей в таблице - 483, это Count(*) выдаёт.
Покажи скрипт на создание таблицы, где Create Table.


 
TDK   (2004-08-06 15:40) [18]

>>есть база с 68 полями
В базе есть таблицы, а в них поля...

>>Хотя кстати UnitID, поле заполнено,а unitName нету!!!
Нету данных в поле или нет поля в таблице?


 
Рафик   (2004-08-06 15:48) [19]

В запросе данное поле не появляется!!!


 
Рафик   (2004-08-06 15:51) [20]

А я не создавал её, и у меня нет данного скрипта!


 
Sergey13 ©   (2004-08-06 15:52) [21]

У меня складывается такое ощущение (может пятница 8-), что unitName это поле из ДРУГОЙ таблицы.
Трудно искать черную кошку в темной комнате, особенно если ее там нет. (с)
8-)


 
Ega23 ©   (2004-08-06 15:53) [22]

А я не создавал её, и у меня нет данного скрипта!

Ну так сгенери, маленький что-ли? Enterprise Manager ведь у тебя есть?

В запросе данное поле не появляется!!!

Select top 1 * from .... сделай в QA  и посмотри, сколько полей вернёт.


 
Ega23 ©   (2004-08-06 15:54) [23]

У меня складывается такое ощущение

У меня тоже такое-же ощущение. Вот я и прошу скрипт на создание таблицы.


 
bushmen ©   (2004-08-06 15:57) [24]

> MSSQL 2000 SP4

Это откуда? Кажись sp3a самый последний был :)


 
Рафик   (2004-08-06 15:58) [25]

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


 
Ega23 ©   (2004-08-06 17:31) [26]

Ну что можно сказать?
1. почему столько NULL? Вот например, UnitType - наверняка вторичный ключ на tblUnitTypes.
2. Таблица денормализована до ужаса: всю информацию о User"е вынести в отдельную таблицу, а на неё вторичный ключ воткнуть. TechConditions тоже выкинуть нафиг в отдельную таблицу. И так далее. В общем - огромное ФИ проектировщику, так не делается.
3. А зачем nvarchar? Разве varchar недостаточно?


 
Nikolay M. ©   (2004-08-06 17:32) [27]

Суммарный размер полей за 8060 не вылезает?
Случайно не только nvarchar-ы теряются?


 
Ega23 ©   (2004-08-06 17:42) [28]

Суммарный размер полей за 8060 не вылезает?

Коля, а это ограничение? Я просто такого никогда не слышал, хотя, с другой стороны, я никогда таких диких таблиц не видел.


 
Nikolay M. ©   (2004-08-06 17:50) [29]


> Ega23 ©   (06.08.04 17:42) [28]

Угу, посмотри в БОЛ ремарки к CREATE TABLE :)


 
Ega23 ©   (2004-08-06 18:05) [30]

Юникод-символ сколько байт занимает?


 
Nikolay M. ©   (2004-08-06 18:08) [31]

Пока вроде 2 было :?)
Обычно 2...


 
Ega23 ©   (2004-08-06 18:11) [32]

Тады со всеми nvarchar у него точно больше 8000 per row


 
Рафик   (2004-08-09 08:23) [33]

Вся проблема в том что это действующая программа, и я в ней поля менять не могу, разделять таблицы так как оригинальная програ работать не будет, мне то надо только некоторые данные извлекать.


 
Nikolay M. ©   (2004-08-09 10:10) [34]

Сделать, как тебе сказали, денормализацию, эту страшную таблицу удалить и для поддержки обратной совместимости создать вьюху с таким же именем.


 
Ega23 ©   (2004-08-09 10:29) [35]

денормализацию
????
Может нормализацию???


 
Nikolay M. ©   (2004-08-09 10:31) [36]


> Ega23 ©   (09.08.04 10:29) [35]

Ессессно.
10 утра, а я еще не проснулся... :)


 
Рафик   (2004-08-09 11:10) [37]

Так ведь прога оригинальная не будет работать, она же закрытая!


 
Nikolay M. ©   (2004-08-09 11:20) [38]


> Так ведь прога оригинальная не будет работать, она же закрытая!

Почему?


> для поддержки обратной совместимости создать вьюху с таким
> же именем.


Ы?


 
Рафик   (2004-08-09 11:23) [39]

А ссылку по полям, как можно сделать!


 
Sergey13 ©   (2004-08-09 11:27) [40]

2[38] Nikolay M. ©   (09.08.04 11:20)
ИМХО, запаришся подставлять, если это не просто "действующая программа", а чужая (без исходников) "действующая программа" . Т.е. саму то таблу на вьюху - нет проблем. А вот ведение той таблицы в закрытой программе, а ведение новых таблиц - как? Тут по крайней мере все очень непросто. ИМХО



Страницы: 1 2 вся ветка

Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.037 c
14-1092854337
syte_ser78
2004-08-18 22:38
2004.09.05
вопрос по компоненту ttable


3-1092170639
Cobalt
2004-08-11 00:43
2004.09.05
Текст запроса корёжит не по детски :(


4-1090572558
Proger
2004-07-23 12:49
2004.09.05
Позиция курсора


1-1092905242
ferr
2004-08-19 12:47
2004.09.05
WebBrowser


3-1091974607
VID
2004-08-08 18:16
2004.09.05
Где живёт подробное описание SQL-команд на русском ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский