powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SQL и VB
17 сообщений из 17, страница 1 из 1
SQL и VB
    #34306453
z123FK_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попытаю счастья здесь....
Пишу макрос на VB для Allen Bradley (RS View) но это не суть. Суть в том, что никогда с VB дел не имел.
Вобщем есть база данных SQL. Нужно на данном этапе взять значение колонки целиком. У меня же берется лишь первое значение и все. Как сделать присвоение значения тэгу?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub Load_SS()
Dim i As Integer

Dim connect, db, query
Set connect = CreateObject("ADODB.Connection")
connect.open ALIAS_SS, USER, DBPASS
Set db = CreateObject("ADODB.Recordset")

query = "SELECT * FROM my3"
db.open query, connect
gTagDb.GetTag("fst_tag").Value = db.fields( 1 )

db.Close

connect.Close

gTagDb.GetTag("scndd_tag").Value =  1 

End Sub

таблица данных выглядит таким образом
Код:
1.
2.
3.
4.
 id name
 1  petrov
 2  ivanov
......
n sidorov

Согласен, возможно, классический VB тут неуместен, но пока синтаксис не понятен и не знаю на какой форум обратится.
Модератор: Тэг форматирования кода [src vba][src], кнопка SRC в окне создания нового собщения.
...
Рейтинг: 0 / 0
SQL и VB
    #34306479
nergal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может для Bradley (RS View) есть методы работы с полями или самое лучшее это recordset ?
попробуйте поискать в хэлпах
...
Рейтинг: 0 / 0
SQL и VB
    #34306499
iSestrin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут вы немного не понимаете сущности адошного представления бд - там есть таблица целиком ака рекордсет и строка целиком ака "запись", но нет "колонки целиком". его нет так же и в адо.нет...

скорее всего тэгу вы должны присвоить рекордсет, но заселектить в нем не все колонки(SELECT * FROM my3), а только нужную (SELECT кол1 FROM my3)
...
Рейтинг: 0 / 0
SQL и VB
    #34306509
nergal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
про поля я погорячился ))
...
Рейтинг: 0 / 0
SQL и VB
    #34306520
z123FK_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
такс. я, наверное, не там разместил вопрос. Просьба модератору перенести в форум по VB.

как я понял по БД мне надо сделать конкатенацию. то есть прочитать столбец целиком построчно, а зетем перенести в одну переменную. после чего присвоить моему тэгу (fst_tag) значение этой переменной.
мне было посоветовано использовать следующую функцию

With myrs' (myrs в вашем примере называется db)
' On Error Resume Next
.MoveFirst 'Перемещаемся к первой записи
If .AbsolutePosition <> -1 Then
Do While Not .EOF 'Выполнять пока есть записи. Загружаем значения...
DoEvents
i = i + 1
lstMarks.AddItem (.Fields(1)) '(вот тут собственно присваиваем значение 'переменной, в вашем случае gTagDb.GetTag("fst_tag").Value )

.MoveNext 'Перемещаемся к следующей записи
Loop
End If
.Close
End With

но что только я не изменял мой тэг либо пуст, либо ошибка.
...
Рейтинг: 0 / 0
SQL и VB
    #34306541
z123FK_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iSestrin пробовал делать такие конструкции
select name from my3
select 'name' from my3
select "name" from my3
select [name] from my3
вылетает ошибка. то есть похоже, что требуется все таки select * from my3 а затем выбирать коллонку
...
Рейтинг: 0 / 0
SQL и VB
    #34306564
iSestrin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну не знаю даже ... 1 и 3-й варианты - чистый анси ...
...
Рейтинг: 0 / 0
SQL и VB
    #34306936
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А база-то где? Сиквел? Тогда вариант 4 должен работать. Name - reserved keyword.
Какая ошибка?

Кстати в твоем коде не видно как именно ты присваиваешь значение переменной. Приведенный выше код ни о чем не говорит.



Magnus
...
Рейтинг: 0 / 0
SQL и VB
    #34306998
z123FK_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
база обычный SQL 2000

листинг:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Const ALIAS_SS = "test"
Const USER = "user"
Const DBPASS = "password"


Sub Load_SS()
Dim i As Integer
Dim connect, db, query



Set connect = CreateObject("ADODB.Connection")
connect.open ALIAS_SS, USER, DBPASS
Set db = CreateObject("ADODB.Recordset")

query = "SELECT * FROM my3"
db.open query, connect

gTagDb.GetTag("fst_tag").Value = db.fields( 1 ) 

db.Close

connect.Close




gTagDb.GetTag("scndd_tag").Value =  1 

End Sub

база
Код: plaintext
1.
2.
3.
 1  petrov
 2  ivanov
......
n sidorov
здесь идет присвоение тэгу fst_tag значение поля 1 из базы данных (petrov).
также могу сделать запрос query = "SELECT * FROM my3 where id=2"
тогда результатом будет ivanov

есть идея сделать обычную выборку колонки, затем преобразование всех значений в одну строку, после чего присвоение значения тэгу. но как это сделать пока неясно.
...
Рейтинг: 0 / 0
SQL и VB
    #34307245
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
z123FK_1база обычный SQL 2000

Тогда еще раз проверь вариант
Все должно работать. Если нет - выложи текст ошибки.

z123FK_1
здесь идет присвоение тэгу fst_tag значение поля 1 из базы данных (petrov).
также могу сделать запрос query = "SELECT * FROM my3 where id=2"
тогда результатом будет ivanov

есть идея сделать обычную выборку колонки, затем преобразование всех значений в одну строку, после чего присвоение значения тэгу. но как это сделать пока неясно.
Вот тут я чета нипонил.
Тебе же еще в первом посте сказали что концепция "вся колонка" просто не существует. Т.е. тебе нужно в любом случае самому читать значения каждой строки из этой колонки и писать все в одну строку.
И чего там неясного? Читай в цикле значение колонки, после прочтения делай рекордсету movenext , а остальное там правильно.
Либо, как вариант, создать функцию на сервере, которая будет возвращать нужное значение. Кстати, если тебе рекордсет на клиенте нужен ТОЛЬКО для получения суммы значений всех строк, то это изначально работа сервера а не клиента, поэтому второй вариант is a way to go.
...
Рейтинг: 0 / 0
SQL и VB
    #34308373
z123FK_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да, что то я упустил, что не существует понятия "колонка целиком"
тогда вопрос, как сделать последовательное чтение строк?
понимаю, что примитив, но не могу сделать и этого.
...
Рейтинг: 0 / 0
SQL и VB
    #34310951
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Do While Not db.EOF
    strTemp=db.Fields( 1 ).Value
    db.MoveNext
Loop
...
Рейтинг: 0 / 0
SQL и VB
    #34311412
z123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 orunbek краткость - сестра таланта. Спасибо. Это то, что нужно!
...
Рейтинг: 0 / 0
SQL и VB
    #34311539
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всегда пожалуйста
...
Рейтинг: 0 / 0
SQL и VB
    #34311611
z123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот тут назрел вопрос
Код: plaintext
1.
2.
3.
Do While Not db.EOF
    vale = vale + db.Fields( 1 ).value
    db.MoveNext
Loop
получаем строку. есть ли символ перевода каретки? у меня получается строчка перенесенная по размерам стринг дисплея... а listbox пока не вижу
...
Рейтинг: 0 / 0
SQL и VB
    #34311738
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vbCrLf
...
Рейтинг: 0 / 0
SQL и VB
    #34311757
z123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkiades спасибо, все работает.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / SQL и VB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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