Сейчас на форуме: tyns777, zombi-vadim (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› local sql из delphi |
Посл.ответ | Сообщение |
|
Создано: 20 ноября 2007 17:21 · Личное сообщение · #1 задача такая: обновляем таблицу через sql, причём не все записи, а только некоторые. в аттаче файл содержащий внутренности StringList-a который я вставляю как sql в query, а потом execsql. вопрос такой: как правильно выполнить этот запрос, вернее как правильно будет выглядеть UPDATE для нескольких условий. или даже так: надо одним updat-ом обновить нужные записи или как объеденить три updata в один ![]() ![]() |
|
Создано: 20 ноября 2007 17:27 · Поправил: apple · Личное сообщение · #2 update set {}, set {}, ..., set {} Но не везде. Или через точку с запятой 3 запроса или WHEN -- THEN или IF(,,) или хранимая процедура. Кто на что горазд, да и под каждый движок есть какой-то оптимальный метод. А по сути - такая "оптимизация" тебя не спасет: БД жжжуть как спроектирована. ----- ring 0 ![]() |
|
Создано: 20 ноября 2007 18:16 · Личное сообщение · #3 UPDATE [dbo].[Pupils]
![]() ![]() ![]() ![]() |
|
Создано: 20 ноября 2007 19:04 · Личное сообщение · #4 |
|
Создано: 20 ноября 2007 19:06 · Личное сообщение · #5 |
|
Создано: 20 ноября 2007 19:13 · Личное сообщение · #6 |
|
Создано: 20 ноября 2007 19:14 · Личное сообщение · #7 |
|
Создано: 20 ноября 2007 19:33 · Поправил: BaGiE · Личное сообщение · #8 apple пишет: Например, Таблица "классы", таблица "Ученики" и т.д. - почитай о построении реляционных БД. Ну если говорить об оптимизации в данной задаче, то ну смысла заводить таблицу "классы" типа (Id INT PRIMARY KEY, ClassName VARCHAR(3)) и т.д. нет. Тут проще реализовать тип TINYINT и встроенный в программу классификатор, например 1 == "1А", 2 == "2А" и. д. Это как азбука =) А вот я бы не стал разделять ФИО на 3 разных поля а взял бы одно поле, например типа VARCHAR(192) и построил на нем некластеризованный (NONCLUSTERED) индекс. Хотя можно, конечно и сделать справочник имен, фамилий, отчеств, но хз. По-моему весьма сомнительное занятие =)
Насчет ADO. Вещь. Только ADO.NET еще круче =) Поэтому писать под этот же MS SQL 2005, например, удобнее на каком-нибудь MS Visual C# 2005 и т.д. Хотя конечно иногда ацкий .NET бесит, но в связке с MSSQL - лялька. ![]() |
|
Создано: 20 ноября 2007 19:48 · Личное сообщение · #9 |
|
Создано: 20 ноября 2007 20:04 · Личное сообщение · #10 структуру БД мне менять уже поздно, а хотя.... если не трудно дайте линк по работе с ADO, а то моего опыта программирования БД хватило только на TQuery, короче BDE ![]() ![]() ![]() ![]() а задача так такая: в таблице колонки:Famlia;Imya;Otchestvo;Clas. мне надо возможностями local sql из delphi, оформить перевод всех учеников в следующий класс. прежде я работал через TTable, это было елементарно, а теперь с Query............... ![]() |
|
Создано: 20 ноября 2007 21:01 · Личное сообщение · #11 BaGiE: Ну если говорить об оптимизации в данной задаче, то ну смысла заводить таблицу "классы" типа (Id INT PRIMARY KEY, ClassName VARCHAR(3)) и т.д. нет. Тут проще реализовать тип TINYINT и встроенный в программу классификатор, например 1 == "1А", 2 == "2А" и. д. Это как азбука =) В данном контексте - да. Однако, если смотреть шире: под классом понимается не просто цифра-буква, а, скажем, расписание уроков, учителя, а завтра понадобится разделение параллелей по направлению (соц.-гум, матем., и т.д.), после завтра еще че-нить... если заранее не спроектировать по правилам, то масштабируемости будет пшик. ----- ring 0 ![]() |
|
Создано: 20 ноября 2007 23:58 · Личное сообщение · #12 |
|
Создано: 21 ноября 2007 01:02 · Поправил: userdom · Личное сообщение · #13 По Delphi на русском можешь --> здесь <-- http://all-ebooks.com/delphi посмотреть, или --> здесь <-- http://www.programmersclub.ru/book , Немного об использовании --> ADO в Delphi <-- http://megalib.com/books/62/IndexADO.htm , и ещё --> (ADO) Как работать из Delphi напрямую с MS ADO (Microsoft Active Data Objects)? <-- http://informatoriy.ru/index.php5?fileId=9402 ![]() |
|
Создано: 21 ноября 2007 07:24 · Личное сообщение · #14 ADO конечно штука не плохая, но вот если объем данных велик, то начинаются жуткие тормоза....Я на эти грабли уже наступал. Также тормоза могут начаться из-за некорректной и ненормализованной структуры БД. Я в свое время очень удачно отказался от ADO и перешел на использование ZeosDBO. Там организуется прямое общение с MS SQL сервером через ntwdblib. Кроме MS SQL поддерживаются ADO, Mysql, PostgreSQL, firebird и кое что еще. Такчто очень рекомендую посмотреть на досуге. Библиотеки ZeosDBO - opensource. ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
|
Создано: 21 ноября 2007 08:42 · Личное сообщение · #15 |
![]() |
eXeL@B —› Программирование —› local sql из delphi |
Эта тема закрыта. Ответы больше не принимаются. |