Проверка данных введённых с формы с SQL
#1
Отправлено 03 июля 2012 - 12:08
Есть программа в которой много окон с которых вводятся данные в базу данных на MS SQL 2005. Всё происходит так пользователь вводит данные и нажимает кнопку OK после чего данные вносятся в базу. Как автоматически отслеживать записались ли данные в нужную таблицу в базе данных или нет? Такоеже надо делать с изменением данных и удалением и много раз подряд!
#3
Отправлено 03 июля 2012 - 12:53
Подключаетесь к базе и проверяете. Здесь есть пример.
Как автоматически отслеживать записались ли данные в нужную таблицу в базе данных или нет?
Тоесть всё это делать через подключение к БД и обычные запросы? А через чекпоинт никак нельзя? Или это каждый раз надо делать чекпоинт и с ним сравнивать?
#4
Отправлено 03 июля 2012 - 13:52
Попробуйте через чек поинт. Никто ж не запрещает :) В справке все есть. И чек поинт, кстати, точно так же будет подключаться к БД и делать "обычные запросы".Тоесть всё это делать через подключение к БД и обычные запросы? А через чекпоинт никак нельзя? Или это каждый раз надо делать чекпоинт и с ним сравнивать?
#5
Отправлено 03 июля 2012 - 14:58
function bdt()
{
var mydb = Sys.OleObject("ADODB.Connection");
// подключение к базе данных
mydb.ConnectionString = "Provider=SQLOLEDB;Data Source=10.1.1.15; User id = sa; Password = sa";
mydb.Open();
var rs = mydb.Execute("SELECT * FROM [VR].[dbo].[COUNTRIES] where country_code = 5582 ");
if (rs.Fields("country_code").Value!=null)
{log.message("OK");}
else {Log.Error("Error! No country");}
// закрываем подключения
rs.Close();
mydb.Close();
}
#6
Отправлено 03 июля 2012 - 15:46
Попробуйте так:А подскажите как подправить функцию чтоб она если select ничё не нашол выводило ошибку а если нашол значит просто сообщение, точно знаю что IF неправильно написан но незнаю как правильно:
if (rs.RecordCount <> 0) { Log.Message("OK") } else { Log.Error("Empty recordset.") }Про RecordCount см. здесь.
#7
Отправлено 05 июля 2012 - 07:41
#8
Отправлено 05 июля 2012 - 08:18
function bdt() { var mydb = Sys.OleObject("ADODB.Connection"); // подключение к базе данных mydb.ConnectionString = "Provider=SQLOLEDB;Data Source=10.1.1.15; User id = sa; Password = sa"; mydb.Open(); var rs = mydb.Execute("SELECT COUNT(*) FROM [VR].[dbo].[COUNTRIES] WHERE country_code = 5582 "); rs.MoveFirst(); if (rs.Fields(0) != 0){ Log.Message("OK"); } else{ Log.Message("Error! No country!"); } // закрываем подключения rs.Close(); mydb.Close(); }Так сойдет?
#9
Отправлено 05 июля 2012 - 08:55
function bdt() { var mydb = Sys.OleObject("ADODB.Connection"); // подключение к базе данных mydb.ConnectionString = "Provider=SQLOLEDB;Data Source=10.1.1.15; User id = sa; Password = sa"; mydb.Open(); var rs = mydb.Execute("SELECT COUNT(*) FROM [VR].[dbo].[COUNTRIES] WHERE country_code = 5582 "); rs.MoveFirst(); if (rs.Fields(0) != 0){ Log.Message("OK"); } else{ Log.Message("Error! No country!"); } // закрываем подключения rs.Close(); mydb.Close(); }Так сойдет?
Немного не получилось. Я придумал чуть подругому, работает дольше зато полностью мне подходит:
function checkRDBnCountry(a)
{
var mydb = Sys.OleObject("ADODB.Connection");
// var a=13;
var b=0;
Delay(700)
//подключаемся к базе данных
mydb.ConnectionString = "Provider=SQLOLEDB;Data Source=10.1.1.15; User id = sa; Password = sa";
mydb.Open();
var rs = mydb.Execute("SELECT * FROM [VR].[dbo].[COUNTRIES]");
rs.MoveFirst();
while(!rs.EOF)
{
if (rs.Fields("country_code").Value==a)
{b=1;}
rs.MoveNext();
}
if (b==1)
{
Log.Message("Ok! Write the values in the database was normal");
}
else
{
Log.Error("Values don't write into database");
}
// закрываем подключения
rs.Close();
mydb.Close();
}
Спасибо за помощь.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных