powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите с запросом по двум таблицам
5 сообщений из 5, страница 1 из 1
помогите с запросом по двум таблицам
    #32468603
МиХаИл1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть запрос
SQLEXEC(n,"select * from ledgerjournaltrans,rassettrans ;
where ledgerjournaltrans.voucher=rassettrans.voucher and
rassettrans.transdate=ledgerjournaltrans.transdate and
rassettrans.dataareaid='ksz' and ledgerjournaltrans.dataareaid='ksz'",'mycursor2')
в таком виде он работает
а втаком нет
select ledgerjournaltrans.accountnum,ledgerjournaltrans.transdate,ledgerjournaltrans.assetdebaccountnum_ru,ledgerjournaltrans.dataareaid
from ledgerjournaltrans,rassettrans
where ledgerjournaltrans.voucher=rassettrans.voucher and
rassettrans.transdate=ledgerjournaltrans.transdate and
rassettrans.dataareaid='ksz' and ledgerjournaltrans.dataareaid='ksz'
говорит "command contains unrecognized phrase/keyword"
...
Рейтинг: 0 / 0
помогите с запросом по двум таблицам
    #32468688
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В FoxPro размер символьной константы ограничен 255 символами, хотя размер символьной переменной ограничен 16,777,184 символами.

MyVar="начало строки"+"окончание строки"

То, что в кавычках - это 2 символьные константы их размер и ограничен 255 символами, а MyVar - это переменная.

Кроме того, не следует идти на поводу у построителя выражений Axapta. Они пытались сделать универсальный код на все случаи жизни. Объединение таблиц лучше все-таки делать по JOIN как и должно быть и использовать хинты для предотвращения ненужных блокировок:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
LOCAL lcStringSQL
lcStringSQL= "SELECT " +;
 " a.accountnum,a.transdate,a.assetdebaccountnum_ru,a.dataareaid " +;
 " FROM ledgerjournaltrans a with (nolock)" 
 " INNER JOIN rassettrans b with (nolock)" 
 " ON a.voucher=b.voucher AND a.transdate=d.transdate " 
 " WHERE a.dataareaid='ksz' and b.dataareaid='ksz' " 

SQLEXEC(n,m.lcStringSQL, "MyCursor2" )


Да, разумеется хинты (with (nolock)) используются только в MS SQL. Если у тебя база на Oracle, то их использовать не надо
...
Рейтинг: 0 / 0
помогите с запросом по двум таблицам
    #32468749
МиХаИл1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ
(with (nolock))
а где можно про это почитать
...
Рейтинг: 0 / 0
помогите с запросом по двум таблицам
    #32468796
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Books OnLine (кратко BOL) - это Help к MS SQL поставляется вместе с ним. Почитай там статью о команде SELECT и ее опции FROM. Раздел "Table hints"

или на данном сайте

http://www.sql.ru/docs/mssql/tsql_ref/index.shtml

Почти в самом конце статьи также описание хинтов команды SELECT

Хинт with (nolock) включает так называемый режим "грязного чтения".

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

Данный хинт отменяет блокировку данных в процессе выборки. Т.е. теоретически, данные могут оказаться не совсем корректными ("грязными"). Пока один пользователь делал выборку, другой их изменил. Нужно тебе это или нет - решай сам.
...
Рейтинг: 0 / 0
помогите с запросом по двум таблицам
    #32469106
МиХаИл1978
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / помогите с запросом по двум таблицам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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