powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Длина переменной в VB Excel
13 сообщений из 13, страница 1 из 1
Длина переменной в VB Excel
    #38187649
VK79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помощи.
Ситуация следующая: имеется лист Excel, на котором имеются данные. Нужно дополнить эту таблицу данными из Oracle. Запрос делаю на основе имеющихся данных на листе, т.е. имеется переменная sql1, которая формируется в цикле перебором строк листа, запрос длинный, таким образом длина переменной sql1 получается более 255 знаков.
нечто вроде:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
For i = 6 To l
        dr = CDate(Cells(i, 6))
                sql1 = ""
                sql1 = "select to_char(v.deespos) from voter v, document vd where v.family = '" & _
                Cells(i, 2) & "' and v.name = '" & Cells(i, 3) & "' and v.lname = '" & Cells(i, 4) & _
                "' and v.date_born = to_date('" & dr & "','DD.MM.YYYY') and v.id = vd.id and vd.ser_doc = '" & _
                Left(Cells(i, 10), 2) & " " + Right(Cells(i, 10), 2) & "' and vd.num_doc = '" & Cells(i, 11) + "'"
        
        	Cells(i, 17).Value = sql1
        
    Next


Переменная slq1 на первой строке (i=6) формируется как надо, а при i=7 и т.д. sql1=""
Думаю, что длина переменной не может быть более 255 символов. Так ли это? Если не так то в чем дело?
Помогите пожалуйста, очень срочно надо.
P.S. Строка
Код: plsql
1.
Cells(i, 17).Value = sql1

приведена для примера, чтоб увидеть как формируется запрос
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187664
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
длина переменной типа String в VBA - 64кб
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187673
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вполне возможно, что переменные у вас не объявлены, где-нибудджь стоит On error resume next, в итоге ошибка либо в преобразовании даты в CDate, либо где-то в ячейках Null и т.п. Так что приводите более полный код процедуры, но лучше всего - выложите тестовый файл.
VK79
Код: plsql
1.
Cells(i, 17).Value = sql1


приведена для примера, чтоб увидеть как формируется запросиспользуйте
Код: vbnet
1.
Debug.Print dql1
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187733
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Да ладно !!?? Размер строки 2ГБ
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187765
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADShocker.Pro,

Да ладно !!?? Размер строки 2ГБЕсли брать справку таки от VBA, который использует автор, а не VB.NET, то там написано:
A variable-length string can contain up to approximately 2 billion (2^31) characters.
A fixed-length string can contain 1 to approximately 64K (2^16) characters.
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187915
VK79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Proвполне возможно, что переменные у вас не объявлены, где-нибудджь стоит On error resume next, в итоге ошибка либо в преобразовании даты в CDate, либо где-то в ячейках Null и т.п.
Дело в том, что при присвоении переменной значения менее 255 символов, все отрабатывает на ура!
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
For i = 6 To l
        dr = CDate(Cells(i, 6))
                sql1 = ""
                sql1 = "select to_char(v.deespos) from voter v, document vd where v.family = '" & _
                Cells(i, 2) & "' and v.name = '" & Cells(i, 3) & "' and v.lname = '" & Cells(i, 4) & _
                "' and v.date_born = to_date('" & dr & "','DD.MM.YYYY') and v.id = vd.id"
               
                sql1 = sql1 & " and vd.ser_doc = '" & Left(Cells(i, 10), 2) & " " + Right(Cells(i, 10), 2) & "' and vd.num_doc = '" & Cells(i, 11) + "'"
        	
                Cells(i, 17).Value = sql1
        
    Next


В этом случае длина sql1 получается в пределах 200 знаков и равна только тому, что ей присвоено в первом случае.
Т.е. такое ощущение, что именно дело в длине переменной.

Если назначить две разные переменные (разделить запрос на две части) и поместить результат в разные ячейки - все ОК.
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187917
VK79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VSVLADShocker.Pro,

Да ладно !!?? Размер строки 2ГБ

Это я в курсе, поэтому и вопрос возникает. как так?
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187937
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VK79Если назначить две разные переменные (разделить запрос на две части) и поместить результат в разные ячейки - все ОК.
Еще не догадался?

Ограничение на длину строки у ячейки, а не переменной.
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187942
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя вру, там 32k.
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187946
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187981
VK79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyVK79Если назначить две разные переменные (разделить запрос на две части) и поместить результат в разные ячейки - все ОК.
Еще не догадался?

Ограничение на длину строки у ячейки, а не переменной.
Да в ячейку до 1 Кб можно впихнуть и то в Excel 2003, а 2007 - 8 кБ.
Я же говорю, что за первый проход цикла все нормально формируется, а дальше - беда.
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38187992
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VK79Т.е. такое ощущение, что именно дело в длине переменной.чего гадать и ощущать-то? файл давай, разберемся. дело не в длине переменной.
...
Рейтинг: 0 / 0
Длина переменной в VB Excel
    #38188067
VK79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за поддержку! Разобрался! Сам сглючил :)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Длина переменной в VB Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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