powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Туплю с запросом
24 сообщений из 24, страница 1 из 1
Туплю с запросом
    #39649912
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И так, напрямую подключаюсь к таблице сервера, но не могу получить данные таблицы
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub main()
    Dim cnt As ADODB.Connection
    Dim etp, msk As Object
    Set etp = CreateObject("ADODB.Recordset")
    Set msk = CreateObject("ADODB.Recordset")
Set cnt = New ADODB.Connection
cnt.ConnectionString = "ODBC;Description=test;Driver=SQL Server; SERVER=rtvs-sql1204.local;APP=Microsoft Office 2010; UID=user;PWD=111111;DATABASE=db_production;TABLE=dbo_tehpro_tblprocessdefinitions"
'конектимся прямо к таблице
cnt.Open
Ask = "SELECT [subdivision], [master], [code], [element_def] FROM [dbo_tehpro_tblprocessdefinitions]"
Set etp = cnt.Execute(Ask)
cnt.Close
End Sub


Что я делаю не так?
...
Рейтинг: 0 / 0
Туплю с запросом
    #39649916
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Говорит что не находит таблицу, хотя я её открываю.
...
Рейтинг: 0 / 0
Туплю с запросом
    #39649962
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelГоворит что не находит таблицу, хотя я её открываю.1) На каком операторе? в какой именно форме - всплывающее окно?

Действительно ли в БД по имени db_production имеется таблица с именем dbo_tehpro_tblprocessdefinitions?

Что значат слова "я её открываю"?
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650160
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaBlackeAngelГоворит что не находит таблицу, хотя я её открываю.1) На каком операторе? в какой именно форме - всплывающее окно?

Действительно ли в БД по имени db_production имеется таблица с именем dbo_tehpro_tblprocessdefinitions?

Что значат слова "я её открываю"?
По порядку:
На этапе
Код: vbnet
1.
Set etp = cnt.Execute(Ask)


Вываливается ошибка что не может найти таблицу dbo_tehpro_tblprocessdefinitions.

Да, таблица существует. Если я конекчусь в акцессе то таблица dbo_tehpro_tblprocessdefinitions в базе db_production открывается как таблица с данными. А вот через vba выдает ошибку.
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650211
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel,
А какой тип объявлен для etp?
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650234
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuBlackeAngel,
А какой тип объявлен для etp?
Variant наверное . :))
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650238
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
Написано же
Код: vbnet
1.
2.
Dim etp, msk As Object
Set etp = CreateObject("ADODB.Recordset")
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650239
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При Чем тут это? У меня запрос скорее всего неправильный, но как правильно - никак не допетрю.
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650302
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelsdku,
Написано же
Код: vbnet
1.
2.
Dim etp, msk As Object
Set etp = CreateObject("ADODB.Recordset")



BlackeAngelПри Чем тут это?
При том , что Ваша переменная при таком обьявлении имеет тип Variant , а в умных книШках написано , что тип данных Variant -это особый тип данных , который может сохранять любые типы данных , за исключением типа Object .

BlackeAngelУ меня запрос скорее всего неправильный,
А Вы не пробовали скопировать строку запроса , и посмотреть ее Manegment Studio на сервере , и Вы узнаете правильный запрос или нет.
Как то так.
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650304
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMan, тогда может расскажете как без cnt.Open обойтись и получить рекордсет 2мя строчками?
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650305
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelsdku,
Написано же
Код: vbnet
1.
2.
Dim etp, msk As Object
Set etp = CreateObject("ADODB.Recordset")


BlackeAngel не знаю как Java , но VBA не PHP . В VBA переменные не слабо типизированные , и не могут изменять тип данных на ходу в зависимости от присвоенного им значения. Здесь каждой переменной нужно присваивать конкретный тип данных.
Т.е правильное обьявление будет таким
Код: vbnet
1.
2.
   Dim etp As Object , msk As Object
Set etp = CreateObject("ADODB.Recordset")


Как то так наверное. :))
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650308
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelDarkMan, тогда может расскажете как без cnt.Open обойтись и получить рекордсет 2мя строчками?
В VBA очень хорошо поставлена пошаговая отладка кода .
Ставите точку останова , запускаете процедуру , она останавливается в точке останова , затем нажатие клавиши F8 идете построчно , и проверяете значения всех Ваших переменных . В частности и Вашего же запроса , затем копируете строку запроса , запускаете на сервере , и смотрите что он Вам выдает , какая ошибка на сервере.
Но перед этим правильно присвойте типы данных переменным , как Вам намекал sdku и запустите процедуру на выполнение , и посмотрите ошибку после этого .
Но лучше , все делать на сервере, а на клиента возвращать только данные .
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650309
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем объявлена переменная msk (кстати правильно) которая не используется?
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650310
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMan, весь код выполняется на машине клиента.
Беда в том, что если я создаю БД в акцессе, и пытаюсь заполнить таблицу акцесса с сервера очень похожим запросом, то необходимые данные сливаются без проблем. А вот если без акцесса, просто в vb6 то вот какая то беда
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650311
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще не досмотрел , в Вашем коде не обьявлена переменная Ask , у Вас наверняка не стоит в настройках обязательное обьявление переменных , еще раз напоминаю это не PHP , это VBA . :))
Следовательно нужно так.
Код: vbnet
1.
   Dim etp As Object , msk As Object , Ask As String
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650313
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuА зачем объявлена переменная msk (кстати правильно) которая не используется?
Может он ее обьявил по ошибке вместо Ask ? :))
Или будет использовать позже , так сказать открывать два рекордсета???
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650316
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan,
Но Ask ни разу не Object, а только String
А вообще,если не установлено обязательное объявление переменных,замена в теле процедуры etp на msk сделает её работоспособной ("Я так думаю" - Мимино)
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650318
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuDarkMan,
Но Ask ни разу не Object, а только String
А вообще,если не установлено обязательное объявление переменных,замена в теле процедуры etp на msk сделает её работоспособной ("Я так думаю" - Мимино)
Я не утверждаю , а предполагаю. :))
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650321
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuв теле процедуры etp на msk сделает её работоспособной ("Я так думаю" - Мимино)
Я хотел предложить ТС такой вариант , но решил не запутывать. А предложил правильно обьявить переменные , дабы не наткнуться на эти грабли в будущем.
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650322
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В конектстринге конекчусь прямо к таблице. Это нормально? Это работает?
Далее делаю выборку из этой таблицы. Это правильно написано?

Раньше просто к серверу конектстринге, а дальше в запросе на выборку указывал таблицу.
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650323
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Хотелось бы послушать начальника транспортного цеха. Пусть он нам расскажет.... "(ТС)-М.Жванецкий
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650328
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в одной умной книшке написано: "создается только один экземпляр этого объекта независимо от того, сколько раз выполнялась функция CreateObject." Объекта с именем etp не существует-так зачем к нему обращаться. Все остальное,по моему, правильно
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650386
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
Если б было правильно - темы бы не было.
...
Рейтинг: 0 / 0
Туплю с запросом
    #39650412
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelsdku,
Если б было правильно - темы бы не было.
Вы рассказывайте что сделали , и что получилось , и какие ошибки. Мы не можем здесь телепатить. Сами понимаете.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Туплю с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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