PHP, HTML, JAVA, CSS, mySQL

mySQL+DELPHI от и до

Привет, программеры, нужна помощь. Есть задача, сделать базу данных на mySQL и подключить к ней программу. База данных реляционная, т.е. нужна помощь в написании запросов.
Не знаю с чего начать, начал с компонентов dbExpress. Говорят они однонаправленные, это очень страшно или можно обойти? Если не ДБ экспресс, то что? Помогите с прогой, хочу не чтобы мне её сделали, а полностью понять суть этого процесса сам.
Надеюсь кто-нибудь поможет во всём разобраться. С чего начать?
Пишу в Borland Developer Studio 2006.
Единственное, что пока знаю - как сконнектиться =) смешно коненчо, но грустно..
Компонент TSQLConnection работает отлично =)
неужели тут нет знающих людей? или неужели влом помочь?
Дайте хоть ссылки на литературу и исходники, если есть, буду очень благодарен.
http://svdpro.info/page.php?id=18
http://xpoint.ru/forums/computers/db...ad/36485.xhtml
компоненты :
http://www.da-soft.com/component/opt...d,6/Itemid,90/
а почему не используются стандартные компоненты?
потому что потом все равно переучиваться ..
т.е. стандартные компоненты говно?
это относится и к мускулу и к MSSQL?
Такая проблемка, делаю запрос:
Query1.SQL.Add(SELECT * FROM tech);
Таблица из базы как бы должна отображаться в TDBGRIDе, но там отображаются только поля, во всех ячейках вместо данных <(MEMO)>
что может быть не так?
Ещё вопросик, есть допустим 3 таблицы, 1 со второй связана одним ключём, вторая с третей другим ключём.
Задача примерно такая: первая таблица - водитель, вторая - автомобиль, третяя - страна производитель автомобиля.
Хочу сделать выборку ВОДЕТЕЛЕЙ, пользующихся автомобилями производства конкретной страны.
Таблицы примерно такие:
1)
*id_user, имя водителя
2)
*id_user, *id_avto, марка машины
3)
*id_avto, страна производитель
БД выдуманная, просто взятая в качестве примера, но решение очень поможет разобраться в бОльшей базе данных, заранее спасибо.
1) про <(MEMO)> - а какие типы полей заданы ? может там MEMO все и есть ..
2) Код:
Select t1.имя_водителя from водители t1, машины t2, бренды t3 where t2.id_user=t1.id_user and t3.id_avto=t2.id_avto and t3.страна_производитель=:param
БД создавалась таким запросом из php:
create table sfera(id_sfera text, sfera_name text, sfera_name_en text
т.е. тип полей текстовый. Есть варианты почему выплывает мемо?
данные в бд занёс просто числа, причём количество строк-то считает правильно, в гриде тоже количество, что и в таблице БД.
за описание запроса большое спасибо!
помимо вопроса в предыдущем посте есть ещё один:
При вводе запроса:
Query1.SQL.Add(SELECT sfera.id FROM sfera);
выдаётся ошибка: General SQL error. .... Unknown column sfera.id in field list"
Может я где-то что-то не связал?
На форме использовал компоненты:
Tdatabase
TQuery
TdataSource
TTable
вроде связал их.... вроде правильно.... прилагаю исходник, посмотрите, пожалуйста, что не так.
id_sfera у тебя поле называется,
Unknown column sfera.id in field list"
абсолютно верно матерится
да, точно, проблема с ошибкой ушла, но всё равно выводит МЕМО
это оно и есть )
Строковые типы
[NATIONAL] CHAR(M) [BINARY]
Строка, всегда имеющая длину M (в случае, когда занесенное значение
короче, оно дополняется пробелами). M может лежать в пределах от 1 до
255. Приставка NATIONAL указывет на необходимость использования кодовой
таблицы, используемой по умолчанию.
[NATIONAL] VARCHAR(M) [BINARY]
Аналогично посленему, за исключением того, что длина значения может
быть произвольной (от 1 до 255 , а все пробелы в конце строки
удалаются.
TINYBLOB (TINYTEXT)
Тип BLOB или TEXT, длиной от 1 до 255 символов.
BLOB (TEXT)
Тип BLOB или TEXT, длиной от 1 до 65535 символов.
MEDIUMBLOB (MEDIUMTEXT)
Тип BLOB или TEXT, длиной от 1 до 16777215 символов.
LONGBLOB (LONGTEXT)
Тип BLOB или TEXT, длиной от 1 до 4294967295 символов.
http://www.opennet.ru/base/dev/mysql_types.txt.html
не понял, как мне это поможет избавиться от МЕМО в ДБгриде?
Надо при создании таблицы определять тип другой? а text не тип? если другой, то какой?
Поискал в инете, на сколько я понял ситуация такая же у чела была:
ВОПРОС:
"Здравствуйте!
У меня такая проблема: в компоненте TDBGrid содержимое полей типа Memo не отбражаются. Появляется надпись: (WIDEMEMO).
Подскажите, пожалуйста, каким образом мне все-таки отобразить, скажем, строку текста из этого поля и добавить многоточие?"
ОТВЕТ:
Сделай вычисляемое поле.
Дабл-кликаешь по таблице(TTable). Появляется окошечко. Райт-кликаешь по окошечку, появляется менюшечка. Выбираешь пункт "New Field"(по-моему так), и задаешь тип поля - Calculated. У таблицы пишешь обработчик события onCalculateFields(дельфы под рукой сечас нет, но примерно так).
Код:
s:=Твоя_таблица.FieldByName(Поле Мемо).AsString;
{Чего-нибудь делаешь со строкой, например оставляешь в ней первые демять символов}
Твоя_таблица.FieldByName(Вычисляемое поле).AsString:=s;
Это верный ответ? а не могли бы Вы поподробнее для моего примера расписать код? что такое Поле мемо (что вместо этого писать), и что такое Вычисляемое поле?
Ну и собственно какой тип и где ставить? При создании или в ТТabale выбирать все поля и для каждого тип прописывать?
ПОМОГИТЕ, НЕ ПОНИМАЮ!
С тем наконец-то разобрался, большое спасибо.
Если можно, ещё один вопрос.
Как записать данные из Edita в БД?
Query2.SQL.Add(INSERT INTO vids (id_vid, vid_name, oboznach, img_sechenie, img_plan);
Query2.SQL.Add(SELECT MAX(id_vid)+1, +vid_name+, +oboznach+, +img_sechenie+, +img_plan+);
Query2.SQL.Add(FROM vids);
что не так? или как лучше сделать?
перед запросом текстовые поля присвоил соответствующим переменным.
SELECT MAX(id_vid)
это можно сделать отдельно,
затем Insert c переданными параметрами
для id_vid лучше выбрать тип счетчик / автоинкремент поля
знаю, что с переданными параметрами можно, но не знаю как, не могли бы Вы проиллюстрировать, ну в текстовом виде как оформляется такой запрос?
Про МАКС знаю, счётчик тоже понятно, но это чуть позже доработаю, спасибо.
Код:
Query2.SQL.Add(INSERT INTO vids (id, name, oboznach, sechenie, planvalues (:id, :name, :oboznach, :sechenie, :plan));