вопрос
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Создайте переменную в СпРоботе, присвойте ей значение внутри VB Script, и используйте ее в "Если равно".
Re: вопрос
Подскажите, пожалуйста, как мне вытащить данные из команды “Выполнить SQL запрос” и сравнить их с номером полученным из переменной Var команды “Начать автообзвон”.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Смотрите в Справке команду "Получить значение из SQL выборки"
Re: вопрос
Подскажите, пожалуйста, так ли это что команда "Начать автообзвон" просто набирает номер и поднимает трубку, но сам звонок не производит.
И ещё можете подсказать, как в VB.NET сделать SQL запрос в базу данных так чтобы он выводил не только те поля, которые я ищу, но и связанные с ними поля с ключами.
Вод код для примера:
Public Class Form1
Private Property Kr As Object
Private Property Input As Object
Private Property Open As Object
Private Property sql As OleDb.OleDbCommand
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Hislo2 As Integer
Hislo2 = TextBox1.Text
' описание переменных cn (соединение с базой данных) и rs (набор записей базы данных)
' cmd содержит адрес базы данных
' sql - SQL-запрос
'провести поиск в соответствии с некоторым критерием
Dim cmd As String
Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
cmd = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
"путь к базе данных\" & "путь к распложению файла базы данных SQL Сервер"
cn = New ADODB.Connection
With cn
.ConnectionString = cmd
.Open()
End With
' переменная Kr служат для хранения критериев поиска:
Kr = Hislo2 'Критерий, в соответствии с которым будет проводиться поиск
' SQL запрос, в соответствии с которым выводятся только те строки, которые соответствуют критерию
' Nam IN это имена одной или нескольких таблиц, из которых производится выборка
sql = "SELECT Nam IN *From Where = +Kr+ "
rs = New ADODB.Recordset
'Объявляем переменную Hislo1 для импорта данных из открытого файла
Dim Hislo1 As Integer
Dim Hislo3 As Integer
With rs
' открыть только те строки таблицы, которые соответствуют критерию
.Open(sql, cn, "adOpenKeyset", "adLockOptimistic")
Input(Open()) = Hislo1
End With '[/b]
'Сравниваем значения переменных
If Hislo1 = Hislo2 Then
Hislo3 = Hislo1
End If
MsgBox("Результат поиска: " & Hislo3)
End Sub
End Class[/color]
И ещё можете подсказать, как в VB.NET сделать SQL запрос в базу данных так чтобы он выводил не только те поля, которые я ищу, но и связанные с ними поля с ключами.
Вод код для примера:
Public Class Form1
Private Property Kr As Object
Private Property Input As Object
Private Property Open As Object
Private Property sql As OleDb.OleDbCommand
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Hislo2 As Integer
Hislo2 = TextBox1.Text
' описание переменных cn (соединение с базой данных) и rs (набор записей базы данных)
' cmd содержит адрес базы данных
' sql - SQL-запрос
'провести поиск в соответствии с некоторым критерием
Dim cmd As String
Dim sql As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
cmd = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _
"путь к базе данных\" & "путь к распложению файла базы данных SQL Сервер"
cn = New ADODB.Connection
With cn
.ConnectionString = cmd
.Open()
End With
' переменная Kr служат для хранения критериев поиска:
Kr = Hislo2 'Критерий, в соответствии с которым будет проводиться поиск
' SQL запрос, в соответствии с которым выводятся только те строки, которые соответствуют критерию
' Nam IN это имена одной или нескольких таблиц, из которых производится выборка
sql = "SELECT Nam IN *From Where = +Kr+ "
rs = New ADODB.Recordset
'Объявляем переменную Hislo1 для импорта данных из открытого файла
Dim Hislo1 As Integer
Dim Hislo3 As Integer
With rs
' открыть только те строки таблицы, которые соответствуют критерию
.Open(sql, cn, "adOpenKeyset", "adLockOptimistic")
Input(Open()) = Hislo1
End With '[/b]
'Сравниваем значения переменных
If Hislo1 = Hislo2 Then
Hislo3 = Hislo1
End If
MsgBox("Результат поиска: " & Hislo3)
End Sub
End Class[/color]
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Эта команда только предоставляет очередной номер для обзвона и снимает трубку. Номер она не набирает и соответственно звонок не производит.Подскажите, пожалуйста, так ли это что команда "Начать автообзвон" просто набирает номер и поднимает трубку, но сам звонок не производит.
Хм.. Ну, сделайте запрос с JOIN или соедините таблицы в WHERE.И ещё можете подсказать, как в VB.NET сделать SQL запрос в базу данных так чтобы он выводил не только те поля, которые я ищу, но и связанные с ними поля с ключами.
Re: вопрос
А можете, пожалуйста, показать на примере кода указанного мной выше как будет выглядеть запрос JOIN.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Опишите словами, какие данные вы хотите получить.
Re: вопрос
Мне нужно чтобы при нахождении допустим номера телефона в базе данных sql сервер, программа открывала не только поле номер телефона, но и связанное с ним общее ключевое поле для группы номеров. Плюс к этому у этого ключевого поля должно считывается индивидуальное значение. Это значение представляет собой поле, в котором указывается, был ли звонок на этот номер за сегодня или не был. Мне нужно считать индивидуальное значение ключевого поля поле в переменную.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Хм.. Лучше приведите структуру таблиц, которые вы используете, и покажите, что с чем должно быть связано. Без этого непонятно.
Re: вопрос
Вот структура:
Последний раз редактировалось DePlus 03 май 2012, 15:26, всего редактировалось 1 раз.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Я так понял, что это 3 номера одного абонента. Почему ключевое поле заполнено только у одного номера, а не у всех?
Re: вопрос
Извините за приведшую таблицу, я её перезолил.
Ключевое поле является общим, для данной группы адресов то есть все три номера завязаны на один ключ.
Ключевое поле является общим, для данной группы адресов то есть все три номера завязаны на один ключ.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Это ваша таблица и вы хотите ориентироваться на нее, чтобы определить, звонить на очередной номер или нет?
Re: вопрос
Да именно так.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Наверное, вы еще собираетесь записывать результат дозвона на номер в эту таблицу?
Re: вопрос
Результат дозвона это поле таблицы "значение ключа".
Скрипта VB .NET будет два; Один в начале и один в конце.
Первый считывает поле "значение ключа" и от этого и даёт разрешение или запрет на дальнейший звонок.
А второй при условии удачного звонка переписывает поле "значение ключа".
Скрипта VB .NET будет два; Один в начале и один в конце.
Первый считывает поле "значение ключа" и от этого и даёт разрешение или запрет на дальнейший звонок.
А второй при условии удачного звонка переписывает поле "значение ключа".
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Во-первых, SpRobot не работает с VB .NET. Он использует VB Script.
Во-вторых, во многих случаях второй ваш скрипт не выполнится, т.к. если во время "разговора" появится сигнал "занято", то SpRobot прервет выполнение алгоритма.
Поэтому единственный вариант в вашем случае - это анализировать таблицы самого SpRobot, чтобы определить, звонили на номер абонента или нет.
Во-вторых, во многих случаях второй ваш скрипт не выполнится, т.к. если во время "разговора" появится сигнал "занято", то SpRobot прервет выполнение алгоритма.
Поэтому единственный вариант в вашем случае - это анализировать таблицы самого SpRobot, чтобы определить, звонили на номер абонента или нет.
Re: вопрос
Можете подсказать, как проанализировать таблицы самого SpRobot.
Получается что скрипт, написанный мной выше на Microsoft Visual Studio, не будет работать в SpRobot.
Получается что скрипт, написанный мной выше на Microsoft Visual Studio, не будет работать в SpRobot.
Последний раз редактировалось DePlus 20 май 2012, 19:53, всего редактировалось 1 раз.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: вопрос
Думал я, думал.. И ничего не придумал. Не вижу способ, как реализовать в текущей версии SpRobot обзвон абонента по нескольким номерам, используя SQL-запросы или VB Scripts. Придется ждать след. версии SpRobot.
Re: вопрос
У меня появилась новая идея как всё это организовать. Если интересно, то в следующем сообщении я приведу логическую схему программы и фрагменты кода.
Но проблема в том, что я новичок в среде программирования Visual Basic Script поэтому мне не помешал бы совет более опытного программиста.
Но проблема в том, что я новичок в среде программирования Visual Basic Script поэтому мне не помешал бы совет более опытного программиста.