Я начинающий (хотя по нижеизложенному тексту это и так понятно), с позволения сказать, программист. Прежде чем задать Вам этот вопрос, пытался искать ответ самостоятельно на этом и других интернет ресурсах (www.sql.ru, www.delphikigdom.ru, www.delphiworld.narod.ru и т. п.), читал книжки (Шумаков и пр.). Некоторое (минимальное) прояснение в голове наступило, но ответа так и не нашел. Вероятность того, что я плохо/мало/неправильно искал не исключаю. Поэтому прошу Вашей помощи. Конструктивная (и даже не очень) критика меня и моих начинаний только приветствуется, ибо лучше Вы укажите мне на мои ошибки сейчас (пусть даже в грубой/ехидной форме), чем это сделают другие и потом.
Вот собственно суть моего вопроса:
Имеется небольшая БД (около 20 таблиц).
СУБД - IB 5.5.
Среда разработки клиентской части - Delphi 6.
На сервере была создана хранимая процедура:
Код: Выделить всё
CREATE PROCEDURE P4 (
IN_METRIC_SIZE VARCHAR(15),
IN_INCH_SIZE VARCHAR(10),
IN_MODEL VARCHAR(10),
IN_PRODUCER VARCHAR(20),
IN_PLY_RATING INTEGER,
IN_RIM VARCHAR(10)
) AS
declare variable var_tyre_id integer;
begin
select tyre_id from tyre
where metric_size = :in_metric_size and inch_size = :in_inch_size and model = :in_model and producer = :in_producer and ply_rating = :in_ply_rating
into :var_tyre_id;
insert into rim_allowed values (:var_tyre_id, :in_rim);
end
Код: Выделить всё
CREATE TABLE TYRE (
TYRE_ID INTEGER NOT NULL,
MODEL VARCHAR(10),
TREAD_PATTERN VARCHAR(25),
RIM_STRIP VARCHAR(10),
PLY_RATING INTEGER,
OVERALL_DIAMETER FLOAT,
TOLERANCE_FOR_DIAMETER VARCHAR(5),
SECTIONAL_WIDTH_NOT_MORE FLOAT,
SECTIONAL_WIDTH_TOLERANCE VARCHAR(5),
LOADED_STATIC_RADIUS FLOAT,
LOADED_STATIC_RADIUS_TOLERANCE VARCHAR(5),
HEIGHT_OF_PROFILE FLOAT,
HEIGHT_OF_CREEPER FLOAT,
CONTACT_PATCH_AREA FLOAT,
MAXIMUM_LOAD_PER_TYRE INTEGER,
MAXIMUM_INFLATION_OF_PRESSURE FLOAT,
MAX_SPEED INTEGER,
WEIGHT FLOAT,
ROLLING_CIRCUMFERENCE INTEGER,
DEFORMATION FLOAT,
APPLICATION_DOMAIN VARCHAR(40),
PRODUCER VARCHAR(20) NOT NULL,
METRIC_SIZE VARCHAR(15),
INCH_SIZE VARCHAR(10)
)
Код: Выделить всё
CREATE TABLE RIM (
RIM VARCHAR(10) NOT NULL,
RIM_WIDTH FLOAT,
TILT_RIM_SEAT FLOAT,
RIM_DIAMETER FLOAT
)
Код: Выделить всё
CREATE TABLE RIM_ALLOWED (
TYRE_ID INTEGER NOT NULL,
RIM VARCHAR(10) NOT NULL
)