![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запрос в MSSQL [D6, MSSQL, MySQL]
DA © (2004-08-30 18:09:00)Помогите разобраться с запросом
В 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, DestNumField '...' not found
Не понимаю совершенно, объясните кто может.
RayRom (2004-09-03 19:25:00) [1]Нет все не так после AS название поля надо в кавычки или апострофы брать, это коретное именование в МуСКЛ, сам такое проходил!
DA (2004-09-02 09:38:00) [2]=> Ega23 © (02.09.04 09:23) [23]
Без Cross Joinизначально и было :), его Analyser MSSQL добавил, реакция та же :).
Ega23 (2004-09-02 09:23:00) [3]Все-таки попробуй без Cross Join
DA (2004-09-02 09:05:00) [4]дело не в скобках, пробовал с самого начала
Выводятся только первые 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'
MDFE (2004-09-01 06:31:00) [5]Правильней будет так: DS.[NAME]
если не хотим получить:
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'DS.NAME'
MOA (2004-08-31 20:30:00) [6]Вариант: [DS.NAME]
MOA (2004-08-31 20:29:00) [7]Попробуйте заключить Name в []? т.е. DS.[NAME]
Удачи!
Ega23 (2004-08-31 19:19:00) [8]Согласен, ошибочка вышла. Указатель хранится.
KSergey (2004-08-31 19:02:00) [9]> Ega23 © (31.08.04 17:57) [16]
> А текст, вроде, именно в таблице
> хранится, в отличие от нтекст
Обман.
Ega23 (2004-08-31 17:57:00) [10]ограничение на размер записи? или кол-во полей?
Именно на размер записи. А текст, вроде, именно в таблице хранится, в отличие от нтекст
KSergey (2004-08-31 16:17:00) [11]> [10] DA (31.08.04 15:45)
> text
Вот это меня настораживает... Не силен, но вроде для доступа к нм надо другие методы использовать... Впрочем, в списке полей-то появиться должно всяко, если есть в выборке...
DA (2004-08-31 15:58:00) [12]ограничение на размер записи? или кол-во полей?
DA (2004-08-31 15:57:00) [13]до 500 символов, где-то так, но я же пишу, что даже если поля в запросе местами поменять, то видит только первые 6 полей.
Ega23 (2004-08-31 15:57:00) [14]только по моему типы полей ни при чем
Есть там дурацкое ограничение на одну запись...
Ega23 (2004-08-31 15:50:00) [15]Text сколько по длинне?
DA (2004-08-31 15:45:00) [16]=> Ega23 © (31.08.04 15:41) [8]
int, int, int, int, datetime, varchar, text, только по моему типы полей ни при чем
DA (2004-08-31 15:42:00) [17]=> sniknik © (31.08.04 11:45) [6]
одинаковый результат что на старом Query, что на новом чистом.
Ega23 (2004-08-31 15:41:00) [18]Типы полей какие?
DA (2004-08-31 15:31:00) [19]вообще не бывает конечно, но поменяв допустим в запросе местами
DS.PASSNUMиDS.NAMEполучаю теперь, чтоField DS.PASSNUM not found,
аDS.NAMEвидит, находит и не ругается.
почему только первые 6 полей находит ?
sniknik (2004-08-31 11:45:00) [20]а проверь. положи чистый новый Query, датасоурс, грид свяжи, внеси запроси прямо в разработке там active в true поставь.
что есть?
чудес то не бывает. должно быть логическое обьяснение.
и потом CROSS JOIN у тебя бессысленен (смотря что конечно хочеш получить), если есть WHERE он работает как INNER. (если это и надо то не лутше ли явно указать?)