Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.03;
Скачать: CL | DM;

Вниз

Запрос в MSSQL   Найти похожие ветки 

 
DA   (2004-08-30 18:09) [0]

Помогите разобраться с запросом

В MySQL выполняется без проблем

SELECT     DS.DOCTYPE, DS.ORG, DS.KIND, DS.REGION, DS.DOCDATE, DS.PASSNUM, DS.NAME, DD.DOCDATE AS DestDate, DD.PASSNUM AS DestNum
FROM         ltb_loaddocs DS CROSS JOIN
                     ltb_loaddocs DD
WHERE     (DS.DOCID = 147401) AND (DD.DOCID = 147402)


Из MSSQL тоже, в DELFI на Open тоже не валится, а когда использую
результат, хотя бы элементарное Query.FieldByName("Name").AsString, то три поля : NAME, DestDate, DestNum Field "..." not found

Не понимаю совершенно, объясните кто может.


 
Алхимик ©   (2004-08-31 00:15) [1]

Попробуй в Query создать поля-объёкты и посмотреть как они будут названы.
Смущает меня имя поля : "NAME"


 
KSergey ©   (2004-08-31 07:10) [2]

А в Query точно никакие объекты-поля на этапе разработки не созданы?


 
DA   (2004-08-31 10:33) [3]

посмотрел через FieldList после Open есть только первые 6 полей DOCTYPE, ORG, KIND, REGION, DOCDATE, PASSNUM

а куда остальные деваются?


 
sniknik ©   (2004-08-31 11:09) [4]

> а куда остальные деваются?
порутчик молчааать!!!!! %о)

А в Query точно никакие объекты-поля на этапе разработки не созданы?


 
DA   (2004-08-31 11:22) [5]

точно, ничего


 
sniknik ©   (2004-08-31 11:45) [6]

а проверь. положи чистый новый Query, датасоурс, грид свяжи, внеси запроси прямо в разработке там active в true поставь.
что есть?

чудес то не бывает. должно быть логическое обьяснение.

и потом CROSS JOIN у тебя бессысленен (смотря что конечно хочеш получить), если есть WHERE он работает как INNER. (если это и надо то не лутше ли явно указать?)


 
DA   (2004-08-31 15:31) [7]

вообще не бывает конечно, но поменяв допустим в запросе местами
DS.PASSNUM и DS.NAME получаю теперь, что Field DS.PASSNUM not found,
а DS.NAME видит, находит и не ругается.

почему только первые 6 полей находит ?


 
Ega23 ©   (2004-08-31 15:41) [8]

Типы полей какие?


 
DA   (2004-08-31 15:42) [9]

=> sniknik ©   (31.08.04 11:45) [6]
одинаковый результат что на старом Query, что на новом чистом.


 
DA   (2004-08-31 15:45) [10]

=> Ega23 ©   (31.08.04 15:41) [8]
int, int, int, int, datetime, varchar, text, только по моему типы полей ни при чем


 
Ega23 ©   (2004-08-31 15:50) [11]

Text сколько по длинне?


 
Ega23 ©   (2004-08-31 15:57) [12]

только по моему типы полей ни при чем

Есть там дурацкое ограничение на одну запись...


 
DA   (2004-08-31 15:57) [13]

до 500 символов, где-то так, но я же пишу, что даже если поля в запросе местами поменять, то видит только первые 6 полей.


 
DA   (2004-08-31 15:58) [14]

ограничение на размер записи? или кол-во полей?


 
KSergey ©   (2004-08-31 16:17) [15]

> [10] DA   (31.08.04 15:45)
> text

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


 
Ega23 ©   (2004-08-31 17:57) [16]

ограничение на размер записи? или кол-во полей?

Именно на размер записи. А текст, вроде, именно в таблице хранится, в отличие от нтекст


 
KSergey ©   (2004-08-31 19:02) [17]

> Ega23 ©   (31.08.04 17:57) [16]
> А текст, вроде, именно в таблице
> хранится, в отличие от нтекст

Обман.


 
Ega23 ©   (2004-08-31 19:19) [18]

Согласен, ошибочка вышла. Указатель хранится.


 
MOA ©   (2004-08-31 20:29) [19]

Попробуйте заключить Name в []? т.е. DS.[NAME]
Удачи!


 
MOA ©   (2004-08-31 20:30) [20]

Вариант: [DS.NAME]


 
MDFE ©   (2004-09-01 06:31) [21]

Правильней будет так: DS.[NAME]
если не хотим получить:
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name "DS.NAME"


 
DA   (2004-09-02 09:05) [22]

дело не в скобках, пробовал с самого начала

Выводятся только первые 6 полей из запроса, если NAME, DestDate, DestNum стоят в начале запроса, например

SELECT     DS.NAME, DD.DOCDATE AS DestDate, DD.PASSNUM AS DestNum, DS.DOCTYPE, DS.ORG, DS.KIND, DS.REGION, DS.DOCDATE, DS.PASSNUM ...

то с ними все нормально, но последние 3 поля из select-а все равно "not Found"


 
Ega23 ©   (2004-09-02 09:23) [23]

Все-таки попробуй без Cross Join


 
DA   (2004-09-02 09:38) [24]

=> Ega23 ©   (02.09.04 09:23) [23]

Без Cross Join изначально и было :), его Analyser MSSQL добавил, реакция та же :).


 
RayRom ©   (2004-09-03 19:25) [25]

Нет все не так после AS название поля надо в кавычки или апострофы брать, это коретное именование в МуСКЛ, сам такое проходил!



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

Текущий архив: 2004.10.03;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.025 c
3-1094043802
Zilog
2004-09-01 17:03
2004.10.03
В 14-значное поле записывается только 12....


1-1095092611
Yanis
2004-09-13 20:23
2004.10.03
Frame


1-1095347646
Кирилл
2004-09-16 19:14
2004.10.03
Outlook Express


6-1090569032
BJValentine
2004-07-23 11:50
2004.10.03
Проблема отправики потока данных в сокет


14-1095233566
Ломброзо
2004-09-15 11:32
2004.10.03
Прикрыли почту