Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
HIMN
Зарегистрирован: 17.04.2006 Сообщения: 17
|
Добавлено: Пн Май 01 2006 18:22 Заголовок сообщения: Вопрос SQL(БД ACCESS, DELPHI(ADO)) |
|
|
У меня имеется таблица Произволителей с полями ИД_ПРОИЗВОДИТЕЛЯ, ИМЯ_ПРОИЗВОДИТЕЛЯ и таблица моделей устройств с полями ИД_ПРОИЗВОДИТЕЛЯ и ИМЯ_МОДЕЛИ. Мне нужено, чтобы в таблицу моделей вносился идентификатор из таблицы производителей для названия моделей, в которых имеется название из поля ИМЯ_ПРОИЗВОДИТЕЛЯ. Скорее всего сравнение оператором LIKE. Но не могу придумать запрос. Подскажите как он может выглядеть? |
|
Вернуться к началу |
|
|
HIMN
Зарегистрирован: 17.04.2006 Сообщения: 17
|
Добавлено: Пн Май 01 2006 20:41 Заголовок сообщения: HIMN |
|
|
Таблицы задаю так
// Proizvoditel
adoconnection1.Execute('create table Proizvoditel (ID_proizv autoincrement primary key, Name_proizv varchar(40), Sait varchar(70))');
// Model
adoconnection1.Execute('create table Model(ID_model autoincrement primary key, Name_model varchar(100), ID_proizv integer, Infirmation_mod varchar(50))'); |
|
Вернуться к началу |
|
|
HIMN
Зарегистрирован: 17.04.2006 Сообщения: 17
|
Добавлено: Вт Май 02 2006 09:03 Заголовок сообщения: |
|
|
У меня имеется таблица Произволителей с полями ИД_ПРОИЗВОДИТЕЛЯ, ИМЯ_ПРОИЗВОДИТЕЛЯ и таблица моделей устройств с полями ИД_ПРОИЗВОДИТЕЛЯ и ИМЯ_МОДЕЛИ. Мне нужно, чтобы в таблицу моделей вносился идентификатор из таблицы производителей для названия моделей, в которых имеется название из поля ИМЯ_ПРОИЗВОДИТЕЛЯ.
// Proizvoditel
adoconnection1.Execute('create table Proizvoditel (ID_proizv autoincrement primary key, Name_proizv varchar(40), Sait varchar(70))');
// Model
adoconnection1.Execute('create table Model(ID_model autoincrement primary key, Name_model varchar(100), ID_proizv integer, Infirmation_mod varchar(50))');
Запрос вот такой
UPDATE model SET id_proizv = (select Proizvoditel.id_proizv from Proizvoditel, MODEL where Model.Name_model like '%trim(Proizvoditel.Name_proizv)%' and rownum = 1 );
Просит внести rownum
Что не так? |
|
Вернуться к началу |
|
|
HIMN
Зарегистрирован: 17.04.2006 Сообщения: 17
|
Добавлено: Вт Май 02 2006 13:19 Заголовок сообщения: |
|
|
Помогите кавычку поставить не знаю как
procedure TForm1.Button2Click(Sender: TObject);
var
cat: OLEVariant;
proizv,id_proizv,id_model: string;
begin
//заносим производителей
qr1.SQL.Clear;
qr2.SQL.Clear;
//all proizv
qr2.SQL.Append('Select * from Proizvoditel');
qr2.Active:=true;
id_proizv:=inttostr(qr2.FieldValues['ID_proizv']);
proizv:='*'+qr2.FieldValues['Name_proizv']+'*';
qr2.First;
while not qr2.Eof do
begin
qr1.SQL.Append('Select ID_model From Model Where Name_model Like '+proizv+''); //????? как сдесь поставить кавычку чтобы работало
qr1.Active:=true;
while not qr1.Eof do
begin
id_model:=inttostr(qr1.FieldValues['ID_model']);
adoconnection1.Execute('Update Model Set Id_proizv ='+id_proizv+' Where ID_model='+id_model+'');
qr1.Next;
end;
qr2.Next;
end;
end; |
|
Вернуться к началу |
|
|
nvjtnbjknb
Зарегистрирован: 31.01.2005 Сообщения: 69
|
Добавлено: Чт Май 04 2006 12:41 Заголовок сообщения: |
|
|
функция QuotedStr() должна помочь |
|
Вернуться к началу |
|
|
|