вопрос

Ответы на вопросы "А может ли он сделать такое..?" или "Как сделать вот это..?"
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

Помогу чем смогу
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Итак, для работы программы нужно:
1) База данных, например MS SQL Server
2) Программа Автообзвон SpRobot
3) Установленный Microsoft Visual Studio
4) И последнее .NET Framework
Как я и говорил ранее, прогарам будет две. Первая получает номер телефона и проверяет его по базе данных SQL Server, а также вне зависимости от результата проверки записывает его во внешнюю переменную за пределами скрипта. Вторая программа выполняется только при условии удачного звонка, она считывает перезаписываемое значение внешней переменной записанной первой программой. И меняет запись в поле «значение ключа» расположенном в таблице баз данных SQL Server.
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

DePlus писал(а):Вторая программа выполняется только при условии удачного звонка, она считывает перезаписываемое значение внешней переменной записанной первой программой.
"Удачный звонок" - это удачный дозвон (т.е. человек снял трубку) или же это удачный обзвон (т.е. человек снял трубку и ему сообщили нужную инфу)?
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Вторая программа выполняется при условии, что человек снял трубку, и ему сообщили нужную информацию.
Пожалуйста, помогите найти ошибки в первом скрипте вод код:
' VB Script Document
option explicit
Dim Conn
Dim oRes
Dim oCmd
'Устанавливаем и открываем соединение с MS SQL Server'
Set Conn = CreateObject("ADODB.Connection")
Set oRes = CreateObject("ADODB.Recordset")
Set oCmd = CreateObject("ADODB.command")
Conn.Provider= "SQLOLEDB.1"
Conn.ConnectionString = "Integrated Security=SSPI;Persist Security" &_
"Info=False;Initial Catalog=SQL БД телефонов;Data Source=Мой сервер"
Conn.Open

'Далее посылаем SQL запрос для поиска нужного номера в базе данных'
oCmd = "Select *From Телефоны WHERE telephone_numder = 89098775609"
'SQL запрос в базу данных'
oRes.Open "Телефоны", Conn
Dim text
oRes.MoveFirst
Do Until oRes.EOF
Wscript.Echo "telephone_numder: 89098775609"
oRes.Fields("89098775609")
mark = rs.Bookmark
oRes.Find "Pre-shared key = '001'", 1, , mark
oRes.MoveNext
text = oRes("Телефоны")
MsgBox("Результат поиска: " & text )
oRes.MoveNext
Loop
oRes.Close: Set oRes = Nothing
Conn.Close: Set Conn = Nothing



Соединение устанавливает «Recordset» тоже открывается, но почему-то нужного действия добиться не получается. А нужно мне чтобы вместе с номером телефона выводилось поле «значение ключа» расположенное в одну с ним строчку.
Вот структура таблицы:
Название Базы Данных: SQL БД телефонов

Название таблицы: Телефоны - Phones

Название полей:

Номер телефона - telephone number
Общий ключ - Pre-shared key
Значение Ключа - The value of the Key


telephone number, Pre-shared key, The value of the Key (0- пусто, 1-звонок был)

89098775609----------------001-------------0
78945612389----------------001-------------0
768585----------------------001-------------1
456969----------------------002-------------1
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

DePlus писал(а): А нужно мне чтобы вместе с номером телефона выводилось поле «значение ключа» расположенное в одну с ним строчку
Запрос у вас верный. Посмотрите значение полей так (надо указывать не конкретное значение, а имя поля!):

Код: Выделить всё

'Далее посылаем SQL запрос для поиска нужного номера в базе данных'
oCmd = "Select *From Телефоны WHERE telephone_numder = 89098775609"

'SQL запрос в базу данных' 
oRes.Open "Телефоны", Conn
oRes.MoveFirst

' показать результат
MsgBox("Результат поиска: " & oRes.Fields("telephone_numder"))
MsgBox("Результат поиска: " & oRes.Fields("Pre_shared_key"))
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Пожалуйста, можете мне подсказать, как получившееся значение переписать в переменную так чтобы туда попал только номер из таблицы значение ключа а не номер телефона вместе с значением ключа 0 или 1.
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

Вы хотите в переменную VB Script записать значение только поля ключа для данного номера?
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Да мне нужно чтобы программа находила номер телефона и брала у него значение поля «значение ключа» а далее выполнялся оператор «If».
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

Код: Выделить всё

if oRes.Fields("Pre_shared_key") = "0" then
..
end if
Это без переменной. Сразу проверяется через IF значение поля ключа.
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Помогите мне, пожалуйста, у меня при поиске вылетает ошибка? Может я неправильно настроил базу данных «MS SQL Сервер»
Изображение
Последний раз редактировалось DePlus 20 май 2012, 20:01, всего редактировалось 2 раза.
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Извините, припутал изображение текст ошибки вод такой:
Изображение
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

Сообщение довольно информативное и ясное - вам не нужны закладки (Bookmark). И вообще у вас там много лишнего.
Между "Conn.Open" и "oRes.Close: Set oRes = Nothing" используйте этот код:

Код: Выделить всё

'SQL запрос в базу данных
oRes.Open "Телефоны", Conn
oRes.MoveFirst

if oRes.Fields("Pre_shared_key") = "0" then
'здесь должен быть ваш код, который что-то делает в случае равенства ключа нулю
'..
end if
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Sannx подскажите, пожалуйста, почему вылетает такая вот ошибка:

Недопустимое имя столбца “The_value_of_the_Key”
Код: 80040E14
Последний раз редактировалось DePlus 20 май 2012, 20:00, всего редактировалось 2 раза.
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

Пишет, что в таблице Phones нет столбца "The_value_of_the_Key".
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Получается, что я где-то ошибся, когда настраивал сервер “SQL”. Странно когда я меняю значение так (oRes.Open "phones", Conn) то подпрограмма проверки (WScript.Echo oRes.GetString) выводит нужные сведения.
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

Попробуйте переименовать столбы попроще: TelNum, KeyValue
и используйте такой запрос:

Код: Выделить всё

select * from Phones where KeyValue = 1
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

И научитесь правильно вставлять картинки в свои сообщения: для этого достаточно тега img, тег url не нужен.
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Подскажите, пожалуйста, как мне правильно найти группу номеров связанных полем «общий ключ» со значение поля допустим «001». Просто мне нужно чтобы оператор «If» поискал, значение поля группы номеров с общим индексом «001». И проверил, есть ли в данной группе номера со значением поля «значение ключа» равным “1” если есть то переписал бы все ячейки поля «значение ключа» с “0” на “1”.
Аватара пользователя
sannx
Администратор
Сообщения: 2306
Зарегистрирован: 02 ноя 2011, 14:00
Skype: sann-x
Контактная информация:

Re: вопрос

Сообщение sannx »

Поле "Ключевое поле" и "Значение ключа" у вас как в реальности называются?
DePlus
Сообщения: 38
Зарегистрирован: 25 апр 2012, 02:35

Re: вопрос

Сообщение DePlus »

Структура таблиц будет вот такой:


telephone number--------Pre-shared key--------The value of the Key (0- пусто, 1-звонок был)

89098775609--------------------001-----------------------------0
78945612389--------------------001-----------------------------0
768585---------------------------001----------------------------1
456969---------------------------002----------------------------1
789595---------------------------002----------------------------0
353535---------------------------002----------------------------0
787878---------------------------003----------------------------1
797979---------------------------004----------------------------1
111111---------------------------005----------------------------1
737373---------------------------006----------------------------1
4955611212---------------------006------------------------------0
794545---------------------------006----------------------------0
734949---------------------------006----------------------------0

Поля называться будут так:
Общий ключ - Pre-shared key
Значение Ключа - The value of the Key
Ответить