powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / В таблице появляются несколько одних и тех же строк при записи.
23 сообщений из 23, страница 1 из 1
В таблице появляются несколько одних и тех же строк при записи.
    #39410034
son456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Столкнулся с такой проблемой, при записи одной строки, через некоторое время в таблице появляются одни и те же строки. Использую Devart.Data.dll,Devart.Data.Oracle.dll
Файл работы с базой:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
public partial class DAL
    {
        
        private string ConnectionString
        {
            get
            {
                return RAB_UCHET.Properties.Settings.Default.ConnectionString;
            }
        }
        public OracleConnection OracleConnection
        {
            get
            {
                if (this.oracleConnection == null)
                {
                    this.oracleConnection = new OracleConnection(this.ConnectionString);
                    oracleConnection.Unicode = true;
                    oracleConnection.Open();
                }
                
                return this.oracleConnection;
            }
        }
        public void UpdInsQuare(string queryString)
        {
            try{
                OracleCommand command = new OracleCommand(queryString, this.OracleConnection);
                //OracleConnection.Open();
                command.ExecuteNonQuery();
                //OracleConnection.Commit();
                
                queryString = "";
            }
            catch
            {
            }
        }
public bool Commit()
        {
            UpdInsQuare("Commit;");
            return true;
        }
        public bool AddEmployer(Employer emp)
        {
            try
            {
                queryString = "insert into EMPLOYESS(HID,PERSON_NUMBER,SURNAME_EMPLOYER,NAME_EMPLOYER,PATRONOMIC_EMPLOYER,HID_ORGANIZATION,HID_DEPARTMENT,POST,ID_CARD)" +
                    "values(EMPLOYESS_HID.NEXTVAL,'" + emp.PersonNumber +
                    "','"  + emp.SurnameEmployer + "','" + emp.NameEmployer + "','" + emp.PatronomicEmployer +
                    "','" + emp.HID_ORGANIZATION + "','" +  emp.HID_DEPARTMENT + "','" + emp.Post +"','"+emp.ID_Card+"')";

               UpdInsQuare(queryString);
               Commit();
               queryString = "";
            }
            catch
            {
                return false;
            }
            return true;
        }
}


Файл диалога
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
public partial class fNewEmployer : Form
    {
//public Employer NewEmployer { get; private set; }
        DAL dal = new DAL();
        public fNewEmployer()
        {
            InitializeComponent();
        }

        private void bt_save_Click(object sender, EventArgs e)
        {
            if (tb_name.Text.Trim() == string.Empty ||
                tb_surname.Text.Trim() == string.Empty ||
                tb_patronomic.Text.Trim() == string.Empty ||
                tb_personNumber.Text.Trim() == string.Empty ||
                cb_nameOrg.Text.Trim() == string.Empty ||
                cb_nameDep.Text.Trim() == string.Empty ||
                tb_Post.Text.Trim() == string.Empty ||
                tb_idCard.Text.Trim() == string.Empty)
            {
                lb_mess.Text = "Не все поля заполнены.";
                lb_mess.BackColor = Color.Red;
                return;
            }

            dal.AddEmployer(new Employer(string.Empty, tb_personNumber.Text.Trim(), tb_surname.Text.Trim(), tb_name.Text.Trim(), tb_patronomic.Text.Trim(), dal.SelOrg(cb_nameOrg.Text.Trim()),
            dal.SelHidDep(cb_nameDep.Text.Trim()), tb_Post.Text.Trim(), tb_idCard.Text.Trim()));
            DialogResult = DialogResult.OK;
        }
private void fNewEmployer_Load(object sender, EventArgs e)
        {
            cb_nameOrg.Items.Clear();
            foreach (string item in dal.SelNameOrg())
            {
                cb_nameOrg.Items.Add(item);
            }
        }

        private void cb_nameDep_Click(object sender, EventArgs e)
        {
            if (cb_nameOrg.Text.Trim() != string.Empty)
            {
                cb_nameDep.Items.Clear();
                foreach (string item in dal.SelNameDepartaments(cb_nameOrg.Text.Trim()))
                {
                    cb_nameDep.Items.Add(item);
                }
            }
        }
}
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410036
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не полностью оформленный test case немногим лучше отсутствия оного.

Проблема не в оракле - на один атом менее 100%.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410079
son456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можете посоветовать мне что делать?Или вопрос нужно переместить на C#.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410098
daughter789
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
определи появляются записи когда поделка запущена и нет
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410102
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
son456,

У продукта ODAC от DevArt, которым ты пользуешся есть SQL*Monitor. Включи его и посмотри какие команды твоя поделка фигачит.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410219
son456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как его включить, у меня всего две dll.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410241
son456
Код: c#
1.
2.
3.
4.
5.
6.
                queryString = "insert into EMPLOYESS(HID,PERSON_NUMBER,SURNAME_EMPLOYER,NAME_EMPLOYER,PATRONOMIC_EMPLOYER,HID_ORGANIZATION,HID_DEPARTMENT,POST,ID_CARD)" +
                    "values(EMPLOYESS_HID.NEXTVAL,'" + emp.PersonNumber +
                    "','"  + emp.SurnameEmployer + "','" + emp.NameEmployer + "','" + emp.PatronomicEmployer +
                    "','" + emp.HID_ORGANIZATION + "','" +  emp.HID_DEPARTMENT + "','" + emp.Post +"','"+emp.ID_Card+"')";

               UpdInsQuare(queryString);




Так программировать нельзя, это верный путь к SQL Injection.

А ещё в заголовке окна опечатка: "выбРать служащего"
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410257
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
son456
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        public bool AddEmployer(Employer emp)
        {
            try
            {
                queryString = "insert into EMPLOYESS(HID,PERSON_NUMBER,SURNAME_EMPLOYER,NAME_EMPLOYER,PATRONOMIC_EMPLOYER,HID_ORGANIZATION,HID_DEPARTMENT,POST,ID_CARD)" +
                    "values(EMPLOYESS_HID.NEXTVAL,'" + emp.PersonNumber +
                    "','"  + emp.SurnameEmployer + "','" + emp.NameEmployer + "','" + emp.PatronomicEmployer +
                    "','" + emp.HID_ORGANIZATION + "','" +  emp.HID_DEPARTMENT + "','" + emp.Post +"','"+emp.ID_Card+"')";

               UpdInsQuare(queryString);
               Commit();
               queryString = "";
            }
            catch
            {
                return false;
            }
            return true;
        }



глобально-бессмысленные переменные и задавливание ошибки
жалко, что расстрелы отменили
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410320
А?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
А?
Гость
son456,

Я не пойму, ты че, в винде не выставил галочку "Использовать маленькие кнопки в панели задач"?
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410322
son456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если критикуете, тогда пишите как должен выглядеть код.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410325
son456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: c#
1.
У продукта ODAC от DevArt, которым ты пользуешся есть SQL*Monitor. Включи его и посмотри какие команды твоя поделка фигачит.


Я скачал программу dbmonitor.exe вы о ней говорили. Или в моих dll есть уже монитор и его нужно включить.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410453
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
son456Если критикуете, тогда пишите как должен выглядеть код.Пойми, на свободных форумах никто никому ничего не должен. Тем более ламерам.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410458
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
son456Если критикуете, тогда пишите как должен выглядеть код.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
        public bool AddEmployer(Employer emp)
        {
            string queryString;
            try
            {
                queryString = "insert into EMPLOYESS(HID,PERSON_NUMBER,SURNAME_EMPLOYER,NAME_EMPLOYER,PATRONOMIC_EMPLOYER,HID_ORGANIZATION,HID_DEPARTMENT,POST,ID_CARD)" +
                    "values (EMPLOYESS_HID.NEXTVAL, :p_PersonNumber , :p_SurnameEmployer, :p_NameEmployer, :p_PatronomicEmployer, " +
                    ":p_HID_ORGANIZATION, :p_HID_DEPARTMENT, :p_Post, :p_ID_Card)";

               привязать переменные или создать массив переменных и передать его в UpdInsQuare
               UpdInsQuare(queryString);
               Commit();
               queryString = "";
            }
            catch
            {
                выдать сообщение или записать в лог или вообще не перехватывать
                return false;
            }
            return true;
        }
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39410570
AnSi_Sr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В bt_save_Click добавляется новая запись в БД.
P.S. См. еще "oracle bind variables" в гугле.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39420321
СвинопасЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
son456Здравствуйте. Столкнулся с такой проблемой, при записи одной строки, через некоторое время в таблице появляются одни и те же строки. Использую Devart.Data.dll,Devart.Data.Oracle.dll
Файл работы с базой:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public partial class DAL
    {
        
        private string ConnectionString
        {
            get
            {
.......................................
      



Была как-то такая проблемка именно такая же ситуация - дублирование записи при вставке через некоторое время, достаточно просто решается. Какую версию сервера Oracle используете? Используется ли партиционирование? Какие версии библиотек ДевАрт?
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39420325
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СвинопасЪson456Здравствуйте. Столкнулся с такой проблемой, при записи одной строки, через некоторое время в таблице появляются одни и те же строки. Использую Devart.Data.dll,Devart.Data.Oracle.dll
Файл работы с базой:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
public partial class DAL
    {
        
        private string ConnectionString
        {
            get
            {
.......................................
      



Была как-то такая проблемка именно такая же ситуация - дублирование записи при вставке через некоторое время, достаточно просто решается. Какую версию сервера Oracle используете? Используется ли партиционирование? Какие версии библиотек ДевАрт?внимательно буду слушать, как ответы на эти вопросы помогут решить проблему
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39420409
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
son456
Код: c#
1.
У продукта ODAC от DevArt, которым ты пользуешся есть SQL*Monitor. Включи его и посмотри какие команды твоя поделка фигачит.


Я скачал программу dbmonitor.exe вы о ней говорили. Или в моих dll есть уже монитор и его нужно включить.а о нем не говорил. dbmonotor и sqlmonitor это - две большие разницы.
не помню, как точка нете, а в Делфи бросаешь компонент на форму TOraSQLMonitor.Activate to True и все.
там должно быть аналогично.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39420541
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
son456Если критикуете, тогда пишите как должен выглядеть код.

Код должен выглядеть читаемо и соответствовать требованиям, принятым в отделе разработки. Можешь не благодарить.

вы б ать автора через некоторое время в таблице появляются одни и те же строки.
И через какое же время это происходит?
Покажите содержимое таблицы в БД до и после однократного добавления записи в таблицу БД.

Также можете повесить аудит на таблицу или включить трассировку своей сессии в СУБД.

з.ы. Items.Clear() точно отрабатывает?
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39426306
son456
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что такое партиционирование? Как повесить аудит на таблицу? Как включить трассировку своей сессии в СУБД. Items.Clear() точно отрабатывает. У меня Oracle 11, Devart.Data.dll версия 5.0.792.0, Devart.Data.Oracle.dll версия 7.9.333.0
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39426313
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
son456Что такое партиционирование? Как повесить аудит на таблицу? Как включить трассировку своей сессии в СУБД.

Раз
Два
пока не будет прочитано - новых вопросов не пишите
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39426567
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
son456Что такое партиционирование? Как повесить аудит на таблицу? Как включить трассировку своей сессии в СУБД. Items.Clear() точно отрабатывает. У меня Oracle 11, Devart.Data.dll версия 5.0.792.0, Devart.Data.Oracle.dll версия 7.9.333.0
Драйверы переустановить нужно.
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39426613
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mefmanson456Что такое партиционирование? Как повесить аудит на таблицу? Как включить трассировку своей сессии в СУБД. Items.Clear() точно отрабатывает. У меня Oracle 11, Devart.Data.dll версия 5.0.792.0, Devart.Data.Oracle.dll версия 7.9.333.0
Драйверы переустановить нужно.драйверы каждой партиции отдельно
...
Рейтинг: 0 / 0
В таблице появляются несколько одних и тех же строк при записи.
    #39426869
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxmefmanпропущено...

Драйверы переустановить нужно.драйверы каждой партиции отдельно
Разумеется. А как же иначе?
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / В таблице появляются несколько одних и тех же строк при записи.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]