У меня есть веб-API в C #, который берет отправленные записи и сохраняет их в таблице .DBF, но по какой-то причине каждый раз, когда я сохраняю, мне приходится выполнять REINDEX из Visual Fox Pro, чтобы иметь возможность увидеть эту запись, я хотел бы, чтобы при вставке записи из C # мне не нужно делать REINDEX, проблема в том, что при сохранении, по какой-то причине новая запись не индексируется
public const String CCVEND = "Driver={Driver do Microsoft dBase (*.dbf)};collatingsequence=ASCII;dbq=C:\\DATABASE;defaultdir=C:\\DATABASE;deleted=0;driverid=533;fil=dBase 5.0;filedsn=C:\\DATABASE\\cx.dsn;maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;statistics=0;threads=3;usercommitsync=Yes";
[HttpPost]
[Route("ccfacl")]
public IHttpActionResult addBillD([FromBody] Factl model)
{
String result = "";
String DOCUMENTO = model.DOCUMENTO;
DateTime FECHA = model.FECHA;
String ARTICULO = model.ARTICULO;
Double CANTIDAD = Convert.ToDouble(model.CANTIDAD);
Double EMPAQUE = Convert.ToDouble(model.EMPAQUE);
Double PRECIO_UNT = model.PRECIO_UNT;
String CUENTAD = model.CUENTAD;
String CUENTAC = model.CUENTAC;
String LINEA_NUM = model.LINEA_NUM;
String TIPO_MOVI = model.TIPO_MOVI;
String CREACION = model.CREACION;
String HORA = model.HORA;
String USUARIO = model.USUARIO;
String APROBADOP = model.APROBADOP;
String APROBADO = model.APROBADO;
String COMIS = model.COMIS;
String CLAVEPPT = model.CLAVEPPT;
try
{
using (OdbcConnection openCon = new OdbcConnection(Cx.CCVEND))
{
openCon.Open();
string saveStaff = "INSERT into ccfactl (DOCUMENTO, FECHA, ARTICULO, CANTIDAD, EMPAQUE," +
"PRECIO_UNT, CUENTAD, CUENTAC, LINEA_NUM, TIPO_MOVI, CREACION, HORA, USUARIO, APROBADOP, APROBADO, COMIS, CLAVEPPT) VALUES " +
"(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";
using (OdbcCommand querySaveStaff = new OdbcCommand(saveStaff, openCon))
{
querySaveStaff.Connection = openCon;
querySaveStaff.Parameters.AddWithValue("@DOCUMENTO", DOCUMENTO);
querySaveStaff.Parameters.AddWithValue("@FECHA", FECHA);
querySaveStaff.Parameters.AddWithValue("@ARTICULO", ARTICULO);
querySaveStaff.Parameters.AddWithValue("@CANTIDAD", CANTIDAD);
querySaveStaff.Parameters.AddWithValue("@EMPAQUE", EMPAQUE);
querySaveStaff.Parameters.AddWithValue("@PRECIO_UNT", PRECIO_UNT);
querySaveStaff.Parameters.AddWithValue("@CUENTAD", CUENTAD);
querySaveStaff.Parameters.AddWithValue("@CUENTAC", CUENTAC);
querySaveStaff.Parameters.AddWithValue("@LINEA_NUM", LINEA_NUM);
querySaveStaff.Parameters.AddWithValue("@TIPO_MOVI", TIPO_MOVI);
querySaveStaff.Parameters.AddWithValue("@CREACION", CREACION);
querySaveStaff.Parameters.AddWithValue("@HORA", HORA);
querySaveStaff.Parameters.AddWithValue("@USUARIO", USUARIO == null ? (object)DBNull.Value : (object)USUARIO);
querySaveStaff.Parameters.AddWithValue("@APROBADOP", APROBADOP == null ? (object)DBNull.Value : (object)APROBADOP);
querySaveStaff.Parameters.AddWithValue("@APROBADO", APROBADO == null ? (object)DBNull.Value : (object)APROBADO);
querySaveStaff.Parameters.AddWithValue("@COMIS", COMIS == null ? (object)DBNull.Value : (object)COMIS);
querySaveStaff.Parameters.AddWithValue("@CLAVEPPT", CLAVEPPT == null ? (object)DBNull.Value : (object)CLAVEPPT);
/* */
querySaveStaff.ExecuteNonQuery();
result = "10";
}
openCon.Close();
}
}
catch (SqlException ex)
{
result = ex.ToString();
}
//do something with e-mail
return Ok(result);
}