подзапрос sql возвращает неопределенную ошибку

#sql #ms-access #vb6 #subquery

#sql #ms-access #vb6 #подзапрос

Вопрос:

Я запрашиваю базу данных access из vb6, используя следующий запрос

 INSERT INTO stock([i_name],[ref],[qty],[supplier_id]) 
VALUES('dd','dddd','11',(SELECT id FROM suppliers WHERE s_name ='dangote'))
  

но при запуске запроса я получаю следующую ошибку

 -2147467259   Unspecified error           Microsoft JET Database Engine
  

кто-нибудь может сказать мне, что не так

Спасибо

Ответ №1:

 INSERT INTO stock([i_name],[ref],[qty],[supplier_id]) 
SELECT 'dd','dddd','11',id FROM suppliers WHERE s_name ='dangote';
  

Мне кажется, что это должно сработать. Если вы получаете ошибку, попробуйте вставить ее в представление SQL нового запроса в Access.

Если тип поля qty является числовым, а не текстовым, отбросьте кавычки вокруг значения 11.

 INSERT INTO stock([i_name],[ref],[qty],[supplier_id]) 
SELECT 'dd','dddd',11,id FROM suppliers WHERE s_name ='dangote';
  

Комментарии:

1. На основе опыта работы с инструкциями SELECT … SELECT Now() AS snapshot_time, col1, col2 FROM Table1;

2. как вы получили этот опыт, вы получили ошибку некоторое время назад? есть ли какой-либо другой способ обойти это?

3. Я начал использовать SQL в 1987 году. Я никогда не пробовал то, что вы пробовали, поэтому не получил ту же ошибку. С Access’db engine, я думаю, INSERT … ЗНАЧЕНИЯ позволяет вставить только одну строку значений. ВСТАВИТЬ … ВЫБЕРИТЕ позволит вам вставить много.

4. вау, это было давно. итак, какая книга. веб-сайт, ссылку на который вы предлагаете мне использовать, чтобы освежить свои навыки?

5. Я слышал положительные отзывы о SQL Джо Селко для Smarties. Думаю, я бы сначала посмотрел туда, если бы начал сегодня. Вы можете приобрести версию с мертвым деревом, и я думаю, что она также может быть доступна в виде загружаемого PDF-файла бесплатно. Посмотрите вокруг. Удачи.