powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Добавление данных в таблицу
6 сообщений из 6, страница 1 из 1
Добавление данных в таблицу
    #39737673
hollo2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть три таблицы
1) с полями: id_1, name1
2) с полями: id_2, name2
3) с полями: id_1, id_2, id_3

id_1 и id_2 инкрементируются автоматически при добавлении name1 и name2 соответственно.
Как добавить в третью таблицу id_1, id_2, зная только name1 и name2(Их мы получаем из TextBox из формы)?

Пробовал много разных вариантов, например так:
Код: sql
1.
2.
3.
INSERT INTO table3(id_1,id_2) VALUES(
	(SELECT id_1; FROM table1; WHERE table1.name1 = VALUES(CAST(ThisForm.Text1.Value AS INT(4)))),
	(SELECT id_2; FROM table2; WHERE table2.name2 = VALUES(CAST(ThisForm.Text2.Value AS INT(4)))))



Но все время synatax error. В чем ошибка?
...
Рейтинг: 0 / 0
Добавление данных в таблицу
    #39737707
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hollo2017,
Извиняйте. Ну просто полный АТАС!!!!

Итак переведите, для себя, что означает
Код: sql
1.
CAST(ThisForm.Text1.Value AS INT(4))


Что за каша в голове?
По человечески, для себя опишите, что хотите. И понятны будут ошибки.
Подсказывать, смысла не вижу, если не найдете причину, бросайте это дело.
...
Рейтинг: 0 / 0
Добавление данных в таблицу
    #39737777
hollo2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asdor, а если так?
Код: sql
1.
2.
3.
INSERT INTO order (id_t, id_c) ;
   SELECT id_t, id_c FROM transport ,client_service ;
      WHERE client_service.name=ThisForm.Text1.Value AND transport.name=ThisForm.Text2.Value



Пишет что uniqueness of index id_c is violated
...
Рейтинг: 0 / 0
Добавление данных в таблицу
    #39737873
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну с типами разобрались.)))
Что у вас главное?
Наверное
hollo2017Как добавить в третью таблицу id_1, id_2, зная только name1 и name2(Их мы получаем из TextBox из формы)?


1. Вы занимаетесь отладкой, поиском правильного решения.
Уберите запрос с формы. напишите отдельную прг.
Значения ThisForm.TextN.Value передавайте туда как параметр.
Это не повлияет на правильность - неправильность, но существенно упростит проверку.
И вообще, не стоит в запросы передавать прямо контролы формы.
(это не иногда влияет на результат), и существенно ускоряет процесс... и в будущем легче.
После отладки, можно просто метод на форме создать, скопировав туда текст.

2. На начните с простого добавления
Код: sql
1.
INSERT INTO table3((id_t, id_c) VALUES(1,2)


Потом сделайте
Код: sql
1.
INSERT INTO table3((id_t, id_c) VALUES(2,2)


И увидите, что видимо id_c должно быть уникально. (зачем не ясно)

Далее, вы можете увидеть, что хотите добавить, просто выполнив свой запрос на добавление.
Код: sql
1.
2.
 SELECT a.id_t, b.id_c FROM transport a ,client_service b;
      WHERE b.name=param1 AND a.name=param2



Просто делите для начала задачу, на мелкие подзадачи.
В сложных случаях, без этого никак.

Ну и очевидно, что такое решение, может вам наклепать дублей, немеряно.
Мне кажется вас неверный выбор решения. Не понятно что требуется.
...
Рейтинг: 0 / 0
Добавление данных в таблицу
    #39737940
hollo2017
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asdor,
Спасибо, разобрался со всем, кроме того, как добавлять текущую дату в таблицу, если задавать как параметр, то ругается, что param1 not found. Есть ли какие-то способы еще?

param1=DATE()

INSERT INTO table1 (id_1, id_2,param1);
SELECT t.id_1, cs.id_2;
FROM transport t,client_service cs;
WHERE cs.name=param1 AND t.name=param2
...
Рейтинг: 0 / 0
Добавление данных в таблицу
    #39738158
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hollo2017asdor,
Спасибо, разобрался со всем, кроме того, как добавлять текущую дату в таблицу, если задавать как параметр, то ругается, что param1 not found. Есть ли какие-то способы еще?

param1=DATE()

INSERT INTO table1 (id_1, id_2, param1 );
В таблице есть поле Param1? Сдается мне, что дело совсем не в дате.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Добавление данных в таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]