powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CursorAdaptor.InsertCmd урезается до 268 символов
17 сообщений из 17, страница 1 из 1
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632500
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CursorAdaptor.InsertCmd урезается до 268 символов. Почему так происходит?
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632537
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению это не единственная особенность CursorAdapter см. /topic/108937&hl=

Я сейчас иследую возможность использования ADO RecordSet и CursorAdapter.DataSource/UpdateDataSource/DeleteDataSource/InsertDataSource. Пока вроде получается (при этом возможно использования в качестве любой из команд как обычных SELECT\'ов так и хранимых процедур. Как закончу - обязательно напишу
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632553
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ограничение возникает при задании через дезайнер или при программном присвоении?
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632566
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пример программного создания CursorAdapter

http://www.hot.ee/jurisfox/vfp60/ca_03_ru.htm
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632584
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ

Код: plaintext
1.
2.
m.CA = CREATEOBJECT('CursorAdapter')
m.CA.SelectCmd = PADL('', 300 ,'1')
?len(m.CA.SelectCmd)

Вроде выводит как надо!?
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632593
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При программном присвоении. Причем, если задать строку типа SPACE(500), то длина будет 500, но если в выражении присутствует this.InsertCmd (или др.), то она урезается до 268 . Пробовал создавать др. свойство - тоже самое.
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632633
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__GUESTПри программном присвоении. Причем, если задать строку типа SPACE(500), то длина будет 500, но если в выражении присутствует this.InsertCmd (или др.), то она урезается до 268. Пробовал создавать др. свойство - тоже самое.

Примерчик выражения, где присутсвует This.InsetCmd и идет обрезание можно? И как программно было задано InsertCmd?
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632666
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спешу сообщить, что мой вывод не верен, попробовал расставить пробелы между операциями '+' - строка увеличиласть только на 15 символов. Ище немного поэкспериментировал, и пришел к выводу, что природа этого явления носит хаотичный порядок.
Ну например:
Код: plaintext
this.InsertCmd = this.InsertCmd+lcDelimiter+lcNewQuery
И эксперимент, давший увеличение строки:
Код: plaintext
this.InsertCmd = ' '+this.InsertCmd+' '+lcDelimiter+' '+lcNewQuery

________________________________________
Только не спрашивайте зачем мне это нужно.
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632737
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подозреваю, что ошибка кроется в типах для операций сложения символьных строк. Но это только предположение.
Правда, выход нашел в использовании функции STUFF().
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632742
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
P.S. В чем же ошибка?
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632829
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверяем:

Код: plaintext
1.
2.
3.
4.
m.CA = CREATEOBJECT('CursorAdapter')
m.CA.InsertCmd = REPLICATE('1', 300 )
?LEN(m.CA.InsertCmd)
m.CA.InsertCmd = m.CA.InsertCmd + REPLICATE('1', 300 )
?LEN(m.CA.InsertCmd)

Как и ожидалось, получили

300
600

Приведи код формирования всех 3 слагаемых

this.InsertCmd = this.InsertCmd+lcDelimiter+lcNewQuery

Вероятно, проблема именно в этом.
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632927
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
this.InsertCmd = 'INSERT INTO t1 SELECT * FROM c1'
lcDelimiter = CHR( 0 )
lcNewQuery = 'INSERT INTO t2 SELECT * FROM c2'

this.InsertCmd = this.InsertCmd+lcDelimiter+lcNewQuery
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32632939
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В предыдущем примере ошибка CHR(0)->CHR(10)
Код: plaintext
1.
2.
3.
4.
this.InsertCmd = 'INSERT INTO t1 SELECT * FROM c1'
lcDelimiter = CHR( 10 )
lcNewQuery = 'INSERT INTO t2 SELECT * FROM c2'

this.InsertCmd = this.InsertCmd+lcDelimiter+lcNewQuery
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32633154
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и какие проблемы? У меня обе команды INSERT нормально добавились
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32633240
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ, Вы знаете, этот приведенный код выше - шаблон. На самом деле есть довольно большая иерархия классов, при инициализации которой строиться запрос(ы), где разделителем является CHR(10). Во время тестирования части кода для упрощения создавал prg файл. Все работало отлично. Но в инициализации почему-то строки обрезались. С этой проблемой я так и не разобрался, а вот использование STUFF() стало решением для данного кода. Строки формируются без ограничений. Вот такая вот история.
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32633329
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не могу ничего сказать не видя самого кода. Удалось Вам решить проблему через STAUFF() и хорошо. Но я не думаю, что это какой-то глюк CursorAdaptor. Скорее всего, проблема где-то именно в иерархии классов.
...
Рейтинг: 0 / 0
CursorAdaptor.InsertCmd урезается до 268 символов
    #32633409
__GUEST
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне остается добавить, что в дизайнере UpdateCmd,DeleteCmd,InsertCmd я присваиваю пустую строку:
Код: plaintext
1.
2.
UpdateCmd = ('')
DeleteCmd = ('')
InsertCmd = ('')
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / CursorAdaptor.InsertCmd урезается до 268 символов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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