В целях автоматизации работы сотрудников, была поставлена задача интеграции записи клиентов в автоматическом режиме. Клиентская база ведется в программе с БД foxpro (dbf). Пытаюсь сделать вручную тестовую запись в БД, но при добавлении значений в одно из полей появляется ошибка :
System.Data.OleDb.OleDbException: "Function is not implemented."
Создаю объект класса для работы с БД:
WDBF db = new WDBF();
db.CreateOleDbCommand("INSERT INTO CLNDATES (" +
"CLIENT_CODE, " +
"LAST_NAME, " +
"FIRST_NAME, " +
"FAMILY, " +
"HOME_PH_NUMBER," +
"OFFICE_PH_NUMBER ," +
"CARD_CODE, " +
"ADD_DATES ," +
"CONTRACT,"+
"CREDIT," +
"PROC_T," +
"PROC_O," +
"MAIL," +
"FILE_PHOTO, " +
"RISK," +
"WORKPLACE," +
"KDG," +
"NATIONALITY," +
"REGION," +
"ADDRESS," +
"MG," +
"INSURER_CODE," +
"BONUSTYPE," +
"DISCOUNTCARD," +
"BONUSCOMMENT," +
"DOCTOR," +
"POST," +
"POSTDATE," +
"VILLAGE," +
"DOGOVOR_FROM," +
"PASSPORT," +
"AGENT," +
"INVALID" +
"" +
"" +
") " +
"VALUES(" +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?" +
")");
Далее открываю подключение и пытаюсь выполнить команду INSERT
_connection.Open();
OleDbCommand command = new
OleDbCommand(queryString, _connection);
command.Parameters.Add("CLIENT_CODE", OleDbType.Char).Value= 85919607;
command.Parameters.Add("HOME_PH_NUMBER", OleDbType.Char).Value = 1111;
command.Parameters.Add("OFFICE_PH_NUMBER", OleDbType.Char).Value = 1111;
command.Parameters.Add("FIRST_NAME", OleDbType.Char).Value = "Теыт";
command.Parameters.Add("FAMILY", OleDbType.Char).Value = "Теыт";
command.Parameters.Add("LAST_NAME", OleDbType.Char).Value = "Теыт";
command.Parameters.Add("CARD_CODE", OleDbType.Char).Value = "";
command.Parameters.Add("ADD_DATES", OleDbType.Char).Value = "";
command.Parameters.Add("CONTRACT", OleDbType.Char).Value = "";
command.Parameters.Add("CREDIT", OleDbType.Double).Value = 0;
command.Parameters.Add("PROC_T", OleDbType.Double).Value = 0;
command.Parameters.Add("PROC_O", OleDbType.Double).Value = 0;
command.Parameters.Add("MAIL", OleDbType.Char).Value = "";
command.Parameters.Add("FILE_PHOTO", OleDbType.Char).Value = "";
command.Parameters.Add("RISK", OleDbType.Char).Value = "";
command.Parameters.Add("WORKPLACE", OleDbType.Char).Value = "";
command.Parameters.Add("KDG", OleDbType.Char).Value = "";
command.Parameters.Add("NATIONALITY", OleDbType.Char).Value = "";
command.Parameters.Add("REGION", OleDbType.Char).Value = "";
command.Parameters.Add("ADDRESS", OleDbType.Char).Value = "";
command.Parameters.Add("MG", OleDbType.Char).Value = "";
command.Parameters.Add("INSURER_CODE", OleDbType.Char).Value = "";
command.Parameters.Add("BONUSTYPE", OleDbType.Char).Value = "";
command.Parameters.Add("DISCOUNTCARD", OleDbType.Char).Value = "";
command.Parameters.Add("BONUSCOMMENT", OleDbType.Char).Value = "";
command.Parameters.Add("DOCTOR", OleDbType.Char).Value = "";
command.Parameters.Add("POST", OleDbType.Char).Value = "";
command.Parameters.Add("POSTDATE", OleDbType.Date).Value =null;
command.Parameters.Add("VILLAGE", OleDbType.Date).Value = null;
command.Parameters.Add("DOGOVOR_FROM", OleDbType.Date).Value = null;
command.Parameters.Add("PASSPORT", OleDbType.Char).Value = null;
command.Parameters.Add("AGENT", OleDbType.Char).Value = null;
command.Parameters.Add("INVALID", OleDbType.Char).Value = null;
command.ExecuteNonQuery();
Ошибка появляется при добавлении
command.Parameters.Add("INVALID", OleDbType.Char).Value = null;
Если исключить заполнение данного столбца, то ругается на то, что INVALID не может быть пустым:
System.Data.OleDb.OleDbException: "Field INVALID does not accept null values."
Перебирал разные типы данных, но ошибка никуда не девается. В чем может быть проблема?
UPD:
command.Parameters.Add("INVALID", OleDbType.Char).Value = "";
При добавлении пустой строки ошибка остается.
UPD2: Строка подключения.
using (StreamReader w = new StreamReader("conf.txt"))
conf = w.ReadLine();
_connection.ConnectionString = @"Provider=vfpoledb;" + conf + ";Collating Sequence=machine; Exclusive=No";
Версию FOXPRO попытаюсь уточнить у разработчиков основного ПО.
UPD3: Попробовал добавить строки в другую таблицу из этого же ПО. Вставляется без замечаний. Внес правки в код, чтобы не перечислять все столбцы, а заполнять только нужные.
db.CreateOleDbCommand("INSERT INTO cln_actions (CLIENT_CODE) " + "VALUES(?)");
public void CreateOleDbCommand(string queryString)
{
if(_connection != null)
{
_connection.Open();
OleDbCommand command = new
OleDbCommand(queryString, _connection);
command.Parameters.Add("[CLIENT_CODE]", OleDbType.Char).Value = "Vasya5";
new OleDbCommand("set null off", _connection).ExecuteNonQuery();
int x = command.ExecuteNonQuery();
}}
Скорее всего MSDN.WhiteKnight прав, и дело в тригере привязанному к полю INVALID. Но как с этим бороться, пока не понятно.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Я сделал пакет служб SSIS, который экспортирует данные из Microsoft SQL Server и импортирует их в файлыcsv и mysql
кто нибудь пользовался SAM-IT/abac для yii2, не могли бы привести пару примеров использования?
В php вообще ноль, но по работе потребовалось, так как на js данная задача невыполнима, прошу помощиЕсть кусочек парсера, принимает на вход ссылку,...
Как найти текст который был написан в описании категории товара woocommerce? Вроде бы текст пишется в wp_posts, а категории в wp_termsНахожу название в категориях...