|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Где-то в степиа кто знает почему в селекте писать (*) стрёмно? ... ну, разве что индексы могут не работать .... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2013, 18:40 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Где-то в степи, Звездочка плоха по нескольким причинам. В таблице может поменяться набор полей и порядок их следования. Получишь трудноуловимую ошибку. Еще она приводит к выборке всех полей, хотя реально нужно меньше. Самый шик, когда в набор попадает ненужный блоб ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2013, 19:01 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
ну в общем то да, избыточность данных, а отсюда не оптимальная внутренняя планировка запроса, предположим вытащить покровный индекс ,а он будет перелопачивать основную таблицу. еще читал вот такую фитчу, при звездочке планировщик делает лишние телодвижения перед выборкой "создание контекста запроса", лезет вытаскивать все "метаданные" таблицы вместо проверки на ключ указанного поля.. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2013, 19:24 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Где-то в степину в общем то да, избыточность данных, а отсюда не оптимальная внутренняя планировка запроса, предположим вытащить покровный индекс ,а он будет перелопачивать основную таблицу. еще читал вот такую фитчу, при звездочке планировщик делает лишние телодвижения перед выборкой "создание контекста запроса", лезет вытаскивать все "метаданные" таблицы вместо проверки на ключ указанного поля.. Зависит от оптимизатора. Например, в MS SQL запросы типа exists (select * from ) и exists (select 1 from ) ничем не отличаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2013, 19:43 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Arm79, а что им отличаться то, это предикат типа Any, он как бы полной выборки не производит, а берет первое значение итерации и отваливает. count в себе на вряд ли содержит. при звездочке или наличии пользовательского поля и отсутствия where и я был бы оптимизатор, я бы полез в метеоданные таблицы и дернул там число записей ( сомневаюсь что такой штуки там нет) а если бы было where я бы построил полный запрос и при первой итерации заполнения буфера вывода отвалил бы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2013, 20:04 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Извиняюсь за свой долгий оффлайн! Pallarisgreshnik_05, Все неправильно. К BindingSource прицеплен DataTable По кнопке "Сохранить" должны выполняться операции с BindingSource (AddNew - если добавить, поменять current - если изменить). После этого вызываешь Adapter.Update(DataTable). У Adaptera должны быть настроены команды Update, Delete, Insert Я так понимаю вышеописанные действия осуществляются в том случае если я с данными работаю прямо в гриде. Ну то есть изменяю, добавляю или редактирую данные прямо в сетке грида??? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 11:52 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
greshnik_05, нет, не правильно. С BindingSource ты можешь хоть через консоль работать, грид тут ни при чем. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:04 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Pallaris, то есть вместо прямых запросов к бд через FbCommand я должен организовать все запросы через dataadapter с настройкой Update, delete, insert? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:08 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
И вызываю их потом. Например для добавления данных в БД нажимаю "Сохранить" а в обработчике на сохранить использую INSERT. для удаления - delete, редактирования - update. Я правильно вас понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:17 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
greshnik_05И вызываю их потом. Нет, вызывать нужно только adapter.Update(твой table) - он сам уже сделает инсерты, апдейты и делиты. Т.е., работая с BindingSource, ты изменяешь свой DataTable в памяти, а адаптер по этому измененному DataTable сам внесет изменения в БД ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:27 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
[quot Pallaris ты изменяешь свой DataTable в памяти, а адаптер по этому измененному DataTable сам внесет изменения в БД[/quot] А каким образом изменить DataTable в памяти? не подскажите?(только сильно не ругайтесь) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:35 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5.
а потом вызвать adapter.Update(table)? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:38 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
где SQLcommand это sql запрос на добавление, удаление и выборку. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:40 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
greshnik_05А каким образом изменить DataTable в памяти? не подскажите?(только сильно не ругайтесь) [src c#] bindingSrc_.DataSource = dataTable_; dataGridView_.DataSource = bindingSrc_; .... // добавление новой DataRow к DataTable bindingSrc_.AddNew(); ... // изменение текущей записи (bindingSrc_.current as DataRow)["поле1"] = someValue; ... //удаление текущей записи bindingSrc_.RemoveCurrent(); ... // запись изменений в БД adapter.Update(dataTable_); [src c#] ну и с удалением ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:45 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Блин, криворукость... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 12:48 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Что то ничего не выходит. Код: 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.
По нажатию кнопки записи в строке table.Rows.Count-1 меняются на те которые я указал и данные сохраняются. Это единственное что получилось. После bindingSource.AddNew(); в гриде появляется новая строка. а как данные добавить туда так и не понял. пробовал так Код: c# 1. 2. 3. 4. 5.
Но не выхоит. Указывает на (bindingSource.Current as DataRow)["name"] = "1name"; и пишет ссылка на объект не эказывает на экземпляр объекта. Как правильно добавить то данные??? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 15:38 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
greshnik_05, добавление Код: c# 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 16:38 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Pallaris, Код: c# 1. 2. 3. 4. 5. 6. 7.
row["name"] = "NewName1"; указывает на эту строку и пишет ошибку сылка на объект не указывает на экземпляр объекта ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 16:47 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
greshnik_05, сделай Код: c# 1.
и посмотри в дебагере, какого типа obj_, - может, он не не DataRow, я не помню ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 16:49 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Вот так работает! Данные отображаются в гриде. Но данные не сохраняются! и ID поле не увеличивается на 1. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 17:17 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
greshnik_05, а обновление и удаление работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 17:26 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Вот так я удаляю запись, все работает. Код: c# 1. 2.
А вот так я изменяю запись Код: c# 1. 2. 3.
где table.Rows.Count-1 номер последней строки в гриде. Пока только так. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 17:35 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
Фиребирд ещё не подохло? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 17:37 |
|
SQL запрос в С# на FireBird
|
|||
---|---|---|---|
#18+
не работает только insert, я правильно понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2013, 17:37 |
|
|
start [/forum/topic.php?fid=20&msg=38443280&tid=1403767]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
444ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 328ms |
total: | 866ms |
0 / 0 |