powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запрос с параметром........!!!
19 сообщений из 19, страница 1 из 1
Запрос с параметром........!!!
    #36338487
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Чета не пойму где грабли!!! База в Firebird 2.0.

автор

Private Sub knopka_Udalit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles knopka_Udalit.Click

Dim ТекстЗапроса

ТекстЗапроса = "DELETE FROM spr_PS WHERE KOD=@Param"

Delete_Stroka_DataGrid(DataGridView_sprSDDS, DataGridView_sprSDDS.CurrentCell.RowIndex, ТекстЗапроса)

End Sub
Sub Delete_Stroka_DataGrid(ByVal ДатаГрид, ByVal ТекущаяСтрока, ByVal ТекстЗапроса)

Dim ЗапросВыполнить

ЗапросВыполнить = New OleDb.OleDbCommand(ТекстЗапроса, Подключение)
ЗапросВыполнить.Parameters.AddWithValue("@Param", ТекущаяСтрока + 1)
ЗапросВыполнить.ExecuteNonQuery()

End Sub
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338496
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
peb,

Поле KOD типа счетчик
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338503
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
peb,

А без параметра запрос работает нормально!!!
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338524
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: peb
> А без параметра запрос работает нормально!!!

И что, даже ошибку не скажешь?

З.Ы. Вообще в самом FB неименованные параметры обозначаются символом ?(знак вопроса), а именованные - перед именем
ставится двоеточие :Param
З.Ы.Ы. Я не знаю как насчет НЕТ, а в предыдущих версиях технологий доступа к данным, параметризированные запросы нужно
было рефрешить, или явно указывать тип и направленность параметра

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338552
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Игорь Горбонос извиняюсь поторопился!!!


Ошибка подготовки SQL выражения. Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 30 @
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338745
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Спасибо!
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338833
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Изменил код

автор

ТекстЗапроса = "DELETE FROM spr_PS WHERE KOD=:Param"

ЗапросВыполнить = New OleDb.OleDbCommand(ТекстЗапроса, Подключение)
ЗапросВыполнить.Parameters.AddWithValue(":Param", ТекущаяСтрока + 1)
ЗапросВыполнить.ExecuteNonQuery()



Теперь выполняется без ошибок, но записи в базе не удаляются!!!
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338887
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
(ТекущаяСтрока + 1) и чему равно это значение? такой код присутствует в вашей таблице?
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338915
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Konst_One(ТекущаяСтрока + 1) и чему равно это значение? такой код присутствует в вашей таблице?

значение=integer
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338929
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
DELETE FROM spr_PS WHERE KOD=?

так чему равно ваше значение типа integer
как узнаете, попробьуйте для начала написать :

Код: plaintext
select * from  spr_PS WHERE KOD=?

может с таким кодом и записей то нет у вас в таблице
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338937
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Konst_One
Код: plaintext
DELETE FROM spr_PS WHERE KOD=?

так чему равно ваше значение типа integer
как узнаете, попробьуйте для начала написать :

Код: plaintext
select * from  spr_PS WHERE KOD=?

может с таким кодом и записей то нет у вас в таблице

Значение = 2
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338942
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и...
записи то с этим кодом в таблице присутствуют?
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338966
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Konst_Oneи...
записи то с этим кодом в таблице присутствуют?

Да такая запись есть, но при добавлении * в запрос - ошибка "Ошибка подготовки SQL выражения. Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 8 *"
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338969
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: peb
> Теперь выполняется без ошибок, но записи в базе не удаляются!!!

FB подразумевает явное управление транзакциями. После запроса нужно сделать Commit транзакции в контексте которой
выполнялся запрос. И обновить данные для показа.
Или в зависимости от установок транзакций, другие могут видеть незакомиченные результаты выполнения запроса. Но
рефрешить читающие датасеты нужно в любом случае.

З.Ы. Обычная практика использовать длинные читающие транзакции и короткие для изменения данных.
Почитай

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36338991
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Игорь Горбонос
> Автор: peb
> Теперь выполняется без ошибок, но записи в базе не удаляются!!!

FB подразумевает явное управление транзакциями. После запроса нужно сделать Commit транзакции в контексте которой
выполнялся запрос. И обновить данные для показа.
Или в зависимости от установок транзакций, другие могут видеть незакомиченные результаты выполнения запроса. Но
рефрешить читающие датасеты нужно в любом случае.

З.Ы. Обычная практика использовать длинные читающие транзакции и короткие для изменения данных.
Почитай



Спасибо за статью!!!
Но если запрос написать так: "DELETE FROM spr_PS", то таблица очищается полностью без использования транзакций!!!
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36339016
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pebKonst_Oneи...
записи то с этим кодом в таблице присутствуют?

Да такая запись есть, но при добавлении * в запрос - ошибка "Ошибка подготовки SQL выражения. Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 8 *"

простите, но вы что-то делаете не то. какую звездочку вы добавляли и куда и зачем?

Код: plaintext
DELETE FROM spr_PS WHERE KOD= 2 

у вас отрабатывает? если да, то разбирайтесь с вашим кодом выполнения через команду с параметром.

вот так выполните:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub CreateOleDbCommand( _
    ByVal queryString As String, ByVal connectionString As String)
    Using connection As New OleDbConnection(connectionString)
        connection.Open()
        Dim command As New OleDbCommand(queryString, connection)
        command.ExecuteNonQuery()
    End Using
End Sub

CreateOleDbCommand("DELETE FROM spr_PS WHERE KOD=2","здесь ваша строка соединения с базой")
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36339027
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вообще почитайте статейку в MSDN: Configuring Parameters and Parameter Data Types (ADO.NET)

ms-help://MS.MSDNQTR.v90.en/wd_adonet/html/537d8a2c-d40b-4000-83eb-bc1fcc93f707.htm
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36339034
peb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
peb
Гость
Konst_One извиняюсь не то написал.....
...
Рейтинг: 0 / 0
Запрос с параметром........!!!
    #36339481
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: peb
> Но если запрос написать так: "DELETE FROM spr_PS", то таблица очищается полностью без использования транзакций!!!

Все действия в SQL-серверах происходят в контексте транзакций, другое дело что в случае с блокировочниками, типа MS SQL
Server управление транзакциями скрыто от пользователя, но если нужно можно и явно управлять. В SQL серверах -
версионниках, типа FB - управление транзакциями это основа производительности. Поэтому и управление транзакциями нужно
вытаскивать на свет божий

З.Ы. Пол-дня на сообщение,

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Запрос с параметром........!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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