Часто Задаваемые Вопросы/Вопросы доступа к данным: различия между версиями
McBurns (обсуждение | вклад) |
Zombrine (обсуждение | вклад) |
||
(не показано 11 промежуточных версий 2 участников) | |||
Строка 6: | Строка 6: | ||
=== В. Почему некоторые номера телефонов в программе пустые, хотя в документе Excel они заполнены? === | === В. Почему некоторые номера телефонов в программе пустые, хотя в документе Excel они заполнены? === | ||
О. Программа получает доступ к документу Excel используя стандартные | О. Программа получает доступ к документу Excel, используя стандартные драйверы Microsoft. Они обладают рядом особенностей, в данном случае, драйвер принимает решение о типе поля (строка, число или дата) на основании нескольких первых строк. Если в этих ячейках окажутся числа, драйвер решит, что все остальные строки так же должны содержать числовые значения, и если встретит строку, вернет пустое значение. И наоборот. Для того, что бы решить эту проблему, следует привести все ячейки с номером телефона к одному типу: строке (желательно). | ||
Описание подобного поведения Excel на [http://support.microsoft.com/kb/194124/EN-US сайте производителя] {{ref-en}}. | Описание подобного поведения Excel на [http://support.microsoft.com/kb/194124/EN-US сайте производителя] {{ref-en}}. | ||
Строка 152: | Строка 152: | ||
В этом случае при обзвоне программа записывает в указанное поле (на рисунке это поле «Количество звонков») количество попыток дозвона и проверяет при каждом цикле, не достигнут ли предел попыток дозвона. Если предел достигнут, данный номер пропускается. | В этом случае при обзвоне программа записывает в указанное поле (на рисунке это поле «Количество звонков») количество попыток дозвона и проверяет при каждом цикле, не достигнут ли предел попыток дозвона. Если предел достигнут, данный номер пропускается. | ||
=== В. При записи результата звонка появляется окно ошибки Call Studio Message с надписью: «В операции должен использоваться обновляемый запрос» и текстом запроса на запись. === | |||
О. Это ошибка записи в базу данных. Она может возникать из-за того, что файл, с которым работает программа, защищен от записи, или вы не имеете права изменять содержимое базы данных. | |||
Кроме того, подобную ошибку могут вызывать настройки подключения драйвера источника данных. Зайдите в меню: | |||
Пуск -> Панель управления -> Администрирование -> Источники данных (ODBC) | |||
переключитесь во вкладку «Пользовательский DNS» и выберите нужный вам драйвер. На рисунке красным отмечено, какая именно галочка должна быть '''отключена''', чтобы пользователь имел возможность записывать данные в файл Excel, используемый в качестве источника (базы) данных: | |||
[[Файл:WikiODBCreadonly.png]] | |||
=== В. Не открывается файл .xlsx. Пишет ошибку «Внешняя таблица не имеет предполагаемый формат» (External table is not in the expected format) === | === В. Не открывается файл .xlsx. Пишет ошибку «Внешняя таблица не имеет предполагаемый формат» (External table is not in the expected format) === | ||
О. К сожалению, при открытии файлов .xlsx зачастую происходит такая ошибка, связанная с неправильным чтением файла драйвером от компании Microsoft. Путей решения два: | О. К сожалению, при открытии файлов .xlsx зачастую происходит такая ошибка, связанная с неправильным чтением файла драйвером от компании Microsoft. Путей решения два: | ||
#Сохранить файл в формате .xls, с которым такой проблемы не возникает. Для этого надо выбрать в меню «Сохранить как» и указать формат файла «Книга Excel 97-2003». | |||
#Пересохранить файл (Файл -> Сохранить как) под тем же именем. | |||
'''Внимание!''' Иногда приходится пересохранять файл несколько раз. | |||
=== В. Программа ставит статус «ОК» и больше не звонит по этим номерам === | === В. Программа ставит статус «ОК» и больше не звонит по этим номерам === | ||
Строка 175: | Строка 186: | ||
=== В. Почему программа не произносит сумму долга? === | === В. Почему программа не произносит сумму долга? === | ||
О. Чаще всего это связано с тем, что неправильно настроено звуковое сообщение для произнесения | О. Чаще всего это связано с тем, что неправильно настроено звуковое сообщение для произнесения суммы долга. | ||
Начнём с самого начала. | Начнём с самого начала. | ||
Строка 197: | Строка 208: | ||
=== В. Программа показывает список файлов .dbf, а после выбора конкретного файла пишет: «Ошибка Объект 'Sample_en' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути в SQL запросе: select * from `Sample_en`» === | === В. Программа показывает список файлов .dbf, а после выбора конкретного файла пишет: «Ошибка Объект 'Sample_en' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути в SQL запросе: select * from `Sample_en`» === | ||
О. Драйвер ADODB, используемый программой для открытия файлов | О. Драйвер ADODB, используемый программой для открытия файлов, игнорирует символы подчеркивания. Начиная от подчеркивания и дальше символы игнорируются, происходит попытка открыть файл 'Sample'. Если такой файл отсутствует, программа выводит сообщение об ошибке. В случае, если файл существует, ошибка будет в том, что программа работает не с тем файлом, который указан в конфигурации. | ||
=== В. У меня есть поле «Тел.» с номером телефона. Программа показывает его при выборе как «Тел#», а после не может прочитать. === | |||
О. Драйвер ADODB, используемый программой для открытия файлов, преобразовывает точку в символ #, а при подстановке в SQL-запрос игнорирует этот символы. Используйте в названиях полей только буквы и цифры. | |||
=== В. Какие базы данных поддерживаются вашей программой? === | === В. Какие базы данных поддерживаются вашей программой? === | ||
Строка 219: | Строка 233: | ||
=== В. В статусе всех звонков проставляется «Не удается конвертировать строку в число».=== | === В. В статусе всех звонков проставляется «Не удается конвертировать строку в число».=== | ||
О. Вы используете произнесение суммы долга из столбца базы данных, например, «[Долг]». Если столбец отсутствует, возникает такая ошибка. Столбцы «[Долг]» и «[долг]» не одинаковые, различия в написании букв (заглавных/строчных) важны. | О. Вы используете произнесение суммы долга из столбца базы данных, например, «[Долг]». Если столбец отсутствует, возникает такая ошибка. Столбцы «[Долг]» и «[долг]» не одинаковые, различия в написании букв (заглавных/строчных) важны. Также важны настройки формата ячеек, а именно: | ||
1. Формат поля должен быть Числовой. | |||
2. В "Формат ячеек..." (При нажатии правой кнопкой мыши по ячейке) должна быть установлена опция "Разделитель групп разрядов". | |||
3. В содержимом ячейки не должно быть пробелов и букв. | |||
=== В. Программа при обращении к базе данных выдаёт номер ошибки. === | |||
О. Номера ошибок вы можете посмотреть на странице описания ошибок ADO от Microsoft: http://support.microsoft.com/kb/209050/ru | |||
=== В. Можно ли звонить моим абонентам из базы данных Skype? === | |||
Да, в качестве базы данных Skype используется SQLite. Описание настройки подключения этого источника данных вы можете увидеть [[Настройка источника данных Skype|здесь]]. | |||
=== В. Неверная кодировка в базе MySQL. Какую кодировку необходимо использовать при создании базы? === | |||
Кодировка в самой базе MySQL не имеет значения, имеет значение, какая кодировка указана на клиенте, так как MySQL автоматически преобразует данные в кодировку клиента. | |||
Кодировку клиента можно указать разными способами: | |||
1. в файле my.cnf/my.ini в раздел [server] добавить следующую строку: | |||
: '''default-character-set=cp1251''' | |||
:или | |||
: '''init-connect="set names cp1251"''' | |||
2. Можно посмотреть/сменить кодировку клиента в переменных сервера MYSQL | |||
: '''show variables like 'character_set_client' ''' | |||
3. Указать кодировку в строке соединения ODBC, например: | |||
: '''Driver={MySQL ODBC 3.51 Driver};Server=myServerAddress; charset=UTF8;Database=myDataBase;User=myUsername;Password=myPassword;Option=3;''' | |||
4. Указать кодировку записью строки '''set character_set_results=cp1251''' в Connector/ODBC, во вкладке Connect Options, в поле Initial Statement. |
Текущая версия на 07:10, 12 июля 2016
В. При возникновении ошибки в работе сценария или компьютера программа сохраняет не все данные в файл Excel.
О. Excel не является полноценной базой данных, и методы работы с ним, предоставленные компанией-производителем, не позволяют принудительно записывать данные. Данные записываются порциями и при некорректном закрытии соединения с файлом Excel в лучшем случае может быть потеряна некоторая часть данных, а в худшем испорчен весь файл. Используйте Microsoft Access для более надёжного хранения данных.
В. Почему некоторые номера телефонов в программе пустые, хотя в документе Excel они заполнены?
О. Программа получает доступ к документу Excel, используя стандартные драйверы Microsoft. Они обладают рядом особенностей, в данном случае, драйвер принимает решение о типе поля (строка, число или дата) на основании нескольких первых строк. Если в этих ячейках окажутся числа, драйвер решит, что все остальные строки так же должны содержать числовые значения, и если встретит строку, вернет пустое значение. И наоборот. Для того, что бы решить эту проблему, следует привести все ячейки с номером телефона к одному типу: строке (желательно). Описание подобного поведения Excel на сайте производителя (англ.).
Обратите внимание! После преобразования ячеек к одному формату необходимо обязательно создать конфигурацию заново.
Необходимо так же учитывать, что Excel самостоятельно решает, что некоторые данные являются цифрами и таким образом их и хранит. Для того, чтобы телефонные номера воспринимались Excel'ом именно как текст, поставьте перед ними апостроф. То есть, не «8-800-775-0105», а «'8-800-775-0105». В этом случае драйвер однозначно распознает введённую дальше информацию как текст.
В. Почему программа пишет сообщение об ошибке при произнесении суммы долга для некоторых абонентов из Excel?
О. Как и в предыдущем вопросе, проверьте формат ячеек, в которых размещены суммы. Драйвер доступа к Excel определяет формат ячеек по первым нескольким строкам, и если формат последующих ячеек не совпадает с выбранным, возникает ошибка.
В. Что обозначают поля в базах данных, устанавливаемых с программой?
О. Список полей с названиями:
База данных | Назначение полей | |||||
Телефон | Имя абонента | Долг | Статус обзвона | Время обзвона | Количество звонков | |
Английская установка | ||||||
Sample.dbf | Phone | Name | Debt | Status | CallTime | Attempts |
Sample.mdb | Phone | Name | Debt | Status | CallTime | Attempts |
Sample.txt | Phone | Name | Debt | - | - | - |
Sample.xls | Phone | Name | Debt | Status | Call Time | Quantity of calls |
Русская установка | ||||||
Sample.dbf | Phone | Name | Debt | Status | CallTime | Attempts |
Sample.mdb | Phone | Name | Debt | Status | CallTime | Attempts |
Sample.txt | Телефон | ФИО | Долг | - | - | - |
Sample.xls | Телефон | ФИО | Долг | Статус обзвона | Время обзвона | Количество звонков |
Рекомендуемый тип | текстовый | текстовый | числовой/денежный | текстовый | дата-время/текстовый | цифровой |
В. Всё было хорошо, но потом программа перестала подставлять значения полей Excel, как это исправить?
О. Проверьте, на первой ли строке расположены названия колонок? Драйвер чтения данных определяет названия полей из первой строки, поэтому, если в файл Excel добавить пустые строки, колонки будут проименованы самим драйвером: F1, F2 и т.д.
В. Почему программа звонит по отсутствующим номерам в пустых ячейках Excel?
О. Excel — это не полноценная база данных, а скорее документ, поэтому, если вы прокрутите страницу вниз, а затем введёте в любую ячейку какие-то данные (даже нажмёте пробел), все строки до выбранной вами будут считаться значащими, даже если вы после удалите информацию из этой строки.
Для того, чтобы программа не обрабатывала эти строки, их необходимо выделить, нажав на цифры слева, обозначающие номера строк, затем нажать на них правую кнопку мыши и выбрать «Удалить»:
После этого обязательно надо сохранить файл.
В. Почему нельзя записать в текстовый файл?
О. Программа работает с различными источниками данных используя стандартную технологию ADO. Драйвера Microsoft для работы с текстовыми файлами поддерживают только добавление записей в конец файла, изменение существующих записей не предусмотрено.
В. Почему программа звонит тем, кому уже дозвонилась?
О. В программном продукте Call Office предусмотрена проверка предыдущих результатов обзвона для каждого номера. Для того, чтобы программа корректно обрабатывала статус для номера телефона, необходимо выбрать пункт «Учитывать предыдущие результаты обзвона из столбца» на странице «Выбор полей с данными»:
И «Записать результат звонка в столбец» на странице «Выбор полей для записи» так, как показано на рисунке:
В вашей конкретной базе данных может не быть столбца с названием «Статус обзвона», названия столбцов выбираются из неё.
Обратите внимание, необходимо выбрать один и тот же столбец для обоих пунктов! В противном случае программа будет проверять результаты в том столбце, в который их не записывала.
В. Программа звонит по номерам один раз, после этого приходится очищать таблицу вручную, чтобы звонила ещё раз.
О. На странице «Выбор полей с данными» вы можете отметить галочкой пункт «Учитывать количество попыток».
На следующей странице («Расширенные настройки») вы можете указать, сколько раз звонить на каждый номер.
В этом случае при обзвоне программа записывает в указанное поле (на рисунке это поле «Количество звонков») количество попыток дозвона и проверяет при каждом цикле, не достигнут ли предел попыток дозвона. Если предел достигнут, данный номер пропускается.
В. При записи результата звонка появляется окно ошибки Call Studio Message с надписью: «В операции должен использоваться обновляемый запрос» и текстом запроса на запись.
О. Это ошибка записи в базу данных. Она может возникать из-за того, что файл, с которым работает программа, защищен от записи, или вы не имеете права изменять содержимое базы данных.
Кроме того, подобную ошибку могут вызывать настройки подключения драйвера источника данных. Зайдите в меню:
Пуск -> Панель управления -> Администрирование -> Источники данных (ODBC)
переключитесь во вкладку «Пользовательский DNS» и выберите нужный вам драйвер. На рисунке красным отмечено, какая именно галочка должна быть отключена, чтобы пользователь имел возможность записывать данные в файл Excel, используемый в качестве источника (базы) данных:
В. Не открывается файл .xlsx. Пишет ошибку «Внешняя таблица не имеет предполагаемый формат» (External table is not in the expected format)
О. К сожалению, при открытии файлов .xlsx зачастую происходит такая ошибка, связанная с неправильным чтением файла драйвером от компании Microsoft. Путей решения два:
- Сохранить файл в формате .xls, с которым такой проблемы не возникает. Для этого надо выбрать в меню «Сохранить как» и указать формат файла «Книга Excel 97-2003».
- Пересохранить файл (Файл -> Сохранить как) под тем же именем.
Внимание! Иногда приходится пересохранять файл несколько раз.
В. Программа ставит статус «ОК» и больше не звонит по этим номерам
О. Если вы выбираете на странице «Выбор полей с данными» пункт «Учитывать предыдущие результаты», программный продукт Call Office больше не звонит по номерам, у которых проставлен статус ОК.
Для того, чтобы успешный статус устанавливался только для тех абонентов, которые прослушали сообщение определённое время, вы можете настроить это количество секунд на странице «Параметры дозвона»:
Обратите внимание: Если указать количество секунд, превышающее время звучания сообщения, успешный статус не будет проставлен ни одному из абонентов, и программа может позвонить им повторно!
В. Почему программа не произносит сумму долга?
О. Чаще всего это связано с тем, что неправильно настроено звуковое сообщение для произнесения суммы долга.
Начнём с самого начала.
Нажимаем на кнопку «Добавить звук» и попадаем на страницу с выбором сообщения.
Здесь нам нужен пункт «Выражение», активировав который мы получаем возможность добавлять в произносимое выражение поля базы данных.
Нажимаем кнопку «Вставить поле» справа от названия поля, и название поля в квадратных скобках появляется в тексте выражения. Для того, чтобы сумма была правильно произнесена, настройки по умолчанию подходят абсолютно. За денежную единицу, если она не выбрана, принимается российские рубли.
Всё готово. Для проверки нажимаем кнопку «Проверить», и результат, взятый из первой записи базы данных, появится в текстовом виде в специальном поле под этой кнопкой. Для полной уверенности в правильности настроек нажимаем кнопку «Проиграть звук» справа от кнопки «Проверить».
Обратите внимание! Если у вас не установлена голосовая библиотека, суммы свыше ста девяносто девяти рублей не будут произноситься.
В. Программа показывает список файлов .dbf, а после выбора конкретного файла пишет: «Ошибка Объект 'Sample_en' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути в SQL запросе: select * from `Sample_en`»
О. Драйвер ADODB, используемый программой для открытия файлов, игнорирует символы подчеркивания. Начиная от подчеркивания и дальше символы игнорируются, происходит попытка открыть файл 'Sample'. Если такой файл отсутствует, программа выводит сообщение об ошибке. В случае, если файл существует, ошибка будет в том, что программа работает не с тем файлом, который указан в конфигурации.
В. У меня есть поле «Тел.» с номером телефона. Программа показывает его при выборе как «Тел#», а после не может прочитать.
О. Драйвер ADODB, используемый программой для открытия файлов, преобразовывает точку в символ #, а при подстановке в SQL-запрос игнорирует этот символы. Используйте в названиях полей только буквы и цифры.
В. Какие базы данных поддерживаются вашей программой?
О. В настоящее время программный продукт Call Office поддерживает получение данных из следующих источников:
- Документ Excel
- Данные Outlook
- ODBC-источник/произвольная строка подключения
- Текстовый файл
- Microsoft Access
- MySQL
- Oracle
- Firebird
- dBase (.dbf)
- MSSQL
В. В сообщении об ошибке написано: «Файл не может быть открыт ядром базы данных Microsoft Jet. Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных». Что делать?
О. 1. Чаще всего проблема связана с тем, что файл, используемый сценарием Call Office в качестве источника данных открыт в другой программе или некорректно завершенной ранее запущенной копией Call Office. Остановите все запущенные сценарии и закройте все открытые окна Call Office, завершите все процессы mshta.exe. Если ошибка не исчезает, перезагрузите компьютер.
2. Если все действия из пункта 1 не помогли, значит, файл источника данных находится на сетевом или закрытом от несанкционированного доступа диске. Проверьте доступность файла источника данных, пересоздайте конфигурацию, указав в качестве источника данных доступный для чтения/записи файл.
В. В статусе всех звонков проставляется «Не удается конвертировать строку в число».
О. Вы используете произнесение суммы долга из столбца базы данных, например, «[Долг]». Если столбец отсутствует, возникает такая ошибка. Столбцы «[Долг]» и «[долг]» не одинаковые, различия в написании букв (заглавных/строчных) важны. Также важны настройки формата ячеек, а именно:
1. Формат поля должен быть Числовой.
2. В "Формат ячеек..." (При нажатии правой кнопкой мыши по ячейке) должна быть установлена опция "Разделитель групп разрядов".
3. В содержимом ячейки не должно быть пробелов и букв.
В. Программа при обращении к базе данных выдаёт номер ошибки.
О. Номера ошибок вы можете посмотреть на странице описания ошибок ADO от Microsoft: http://support.microsoft.com/kb/209050/ru
В. Можно ли звонить моим абонентам из базы данных Skype?
Да, в качестве базы данных Skype используется SQLite. Описание настройки подключения этого источника данных вы можете увидеть здесь.
В. Неверная кодировка в базе MySQL. Какую кодировку необходимо использовать при создании базы?
Кодировка в самой базе MySQL не имеет значения, имеет значение, какая кодировка указана на клиенте, так как MySQL автоматически преобразует данные в кодировку клиента.
Кодировку клиента можно указать разными способами:
1. в файле my.cnf/my.ini в раздел [server] добавить следующую строку:
- default-character-set=cp1251
- или
- init-connect="set names cp1251"
2. Можно посмотреть/сменить кодировку клиента в переменных сервера MYSQL
- show variables like 'character_set_client'
3. Указать кодировку в строке соединения ODBC, например:
- Driver={MySQL ODBC 3.51 Driver};Server=myServerAddress; charset=UTF8;Database=myDataBase;User=myUsername;Password=myPassword;Option=3;
4. Указать кодировку записью строки set character_set_results=cp1251 в Connector/ODBC, во вкладке Connect Options, в поле Initial Statement.