Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Доброго всем дня! Решили на работе перейти с Access на SQL! Все бы хорошо, только в билдере я практически ноль! Только начал, а уже возникла проблема в C++ - не могу заставить запрос в ADOQuery работать! Знаю что скорее всего в что-то не дописываю, только никак понять не могу, много книг перерыл, форумов- толку нет! Короче смысл таков: надо чтобы запрос выводил по значению в DBComboBox2 столбец со значениями из таблицы Dannie в DBComboBox1! Значения в DBComboBox2 я прописал в свойстве String. Запрос у меня простенький и в самом SQL все работает правильно:SELECT Naimenovanie FROM Dannie WHERE Tematika = Tematika; В свойство Parameters внес параметр Tematika. На событые OnDropDown поля DBComboBox2 я прописал следующее: void __fastcall TForm5::DBComboBox1DropDown(TObject *Sender) { ADOQuery2->Active = False; ADOQuery2->Parameters->ParamByName("Tematika")->Value = DBComboBox2->Text; ADOQuery2->Active = True; } Все подключено к базе через ADOConnection (строки из таблиц выводит=))) Уже целую неделю пытаюсь понять - безрезультатно! Кто чем может помочь - прошу! На все вопросы отвечу! Заранее спасибовсем откликнуышимся! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 08:18 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstA, попробуй что-то в этом духе (правда в билдере не проверял, нет под рукой) Только не понятно, тебе в ComboBox1 нужно вывести разовое значение, или накапливать их там списком при каждом выборе в ComboBox2. Если разово, то зачем ComboBox, можно обойтись каким-нибудь TEdit или Tlabel void __fastcall TFormMain::ComboBox1Change(TObject *Sender) { AnsiString SQLStr; SQLStr = "select Naimenovanie from Dannie where Tematika = \'" + ComboBox2->Text +"\'"; if(Query->Active) Query->Close(); Query->SQL->Clear(); Query->SQL->Add(SQLStr); try { Query->Open(); Query->First(); ComboBox1->Text = Query->FieldByName("Naimenovanie ")->AsString; } catch(...){ShowMessage("Error");} if(Query->Active)Query->Close(); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 10:16 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Baby1, В ComboBox2 будет выводиться список значениий всех строк из таблицы Dannie у которых Tematika равна значению из ComboBox1. В таблице Dannie уже забиты готовые значения! Может я что-то усложняю и можно сделать проще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 11:41 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstA, тогда в предыдущем примере в try будет что-то вроде try { Query->Open(); Query->First(); while(!Query->Eof) { ComboBox1->Items->Add(Query->FieldByName("Naimenovanie ")->AsString); Query->Next(); } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 12:45 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял задачу, то лови работающий кусок: при нажатии на кнопку коннектимся к БД, при выборе записи в одном боксе, приходят значения во второй #include <vcl.h> #pragma hdrstop #include <ADODB.hpp> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TADOConnection *Conn; TADOQuery *Query; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::BtnConnClick(TObject *Sender) { AnsiString ConnectionString; ConnectionString = "Provider=SQLOLEDB.1;" "Password=password;" "Persist Security Info=True;" "User ID=userid;" "Initial Catalog=databasename;" "Data Source=servername" ; Conn = new TADOConnection(NULL); Conn->ConnectionString = ConnectionString; Conn->LoginPrompt = false; Conn->Open(); } //--------------------------------------------------------------------------- void __fastcall TForm1::ComboBox2Change(TObject *Sender) { AnsiString SQLStr; ComboBox1->Items->Clear(); Query = new TADOQuery(NULL); if(Query->Active) Query->Close(); Query->Connection = Conn; SQLStr = "select field2 from TableTest where field1 = \'" + ComboBox2->Text +"\'"; if(Query->Active) Query->Close(); Query->SQL->Clear(); Query->SQL->Add(SQLStr); try { Query->Open(); Query->First(); while(!Query->Eof) { ComboBox1->Items->Add(Query->FieldByName("field2")->AsString); Query->Next(); } ComboBox1->ItemIndex = 0; } catch(...){ShowMessage("Error");} if(Query->Active)Query->Close(); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { if(Query->Active) Query->Close(); delete Query; if(Conn->Connected) Conn->Close(); delete Conn; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 13:09 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
вот это лучше вынести в TForm1::BtnConnClick Query = new TADOQuery(NULL); if(Query->Active) Query->Close(); Query->Connection = Conn; нефига при каждом выборе создавать новый Query ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 13:12 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Baby1, спасибо огромаенное! Заработало! У меня не работало потому что я в AnsiString не перевел чтоли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2013, 05:57 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstA, Если честно, я вообще не разбирался в твоем коде... просто написал так, как это сделал бы я... не ручаюсь за красоту кода, наверняка можно написать гораздо лучше, но пример работающий.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2013, 13:55 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
P.S.рад, что смог помочь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2013, 13:56 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Продолжаю работать над своим чудом и возникло еще пару вопросов: 1. При вставке с помощью запросов значений в некоторые поля DBEdit и DBMemo при повторном нажатии на них (допустим чтобы скопировать полученное значение) значение пропадает! Может кто сталкивался с таким!? 2. Как можно вырвать имя пользователя который последний раз работал/изменял данную запись (хочу чтобы отображался последний кто изменял данное поле). Baby1 , жаль плюсануть не могу=) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2013, 07:29 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstA, Код покажите? Если пропадает, то либо перескакивает курсор в датасете либо данные не сохраняются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2013, 19:44 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
BlackEric, Вот код вставки св-ва FileName из OpenDialog: void __fastcall TForm6::Button1Click(TObject *Sender) { if (Form6->OpenDialog1->Execute()) { Form6->DBMemo1->Text = Form6->OpenDialog1->FileName; Использовал АДОQuery и АDOTable, но сейчас думаю что надо DataSet и Command использовать, а то выскакивает ошибка поиска строк для обновления! Причем у созданных далее 2-х записей такой проблемы нет. А вот 4 делаю там такая же фигня! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 11:56 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstABlackEric, Вот код вставки св-ва FileName из OpenDialog: void __fastcall TForm6::Button1Click(TObject *Sender) { if (Form6->OpenDialog1->Execute()) { Form6->DBMemo1->Text = Form6->OpenDialog1->FileName; Использовал АДОQuery и АDOTable, но сейчас думаю что надо DataSet и Command использовать, а то выскакивает ошибка поиска строк для обновления! Причем у созданных далее 2-х записей такой проблемы нет. А вот 4 делаю там такая же фигня! 1. Забудьте про АDOTable. Используйте датасет. 2. Присваивайте данные не компоненту, а полю датасета к которуму забинден компонент и делайте Post. Тогда все должно быть корректно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2013, 17:12 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
2. Присваивайте данные не компоненту, а полю датасета к которуму забинден компонент и делайте Post. Тогда все должно быть корректно. Можешь показать маленький примерчик, а то в моих конспектах с института такого нет))) Спасибо заранее! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2013, 12:14 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAПродолжаю работать над своим чудом и возникло еще пару вопросов: 2. Как можно вырвать имя пользователя который последний раз работал/изменял данную запись (хочу чтобы отображался последний кто изменял данное поле). Как вариант, вести в таблице поле, в котором хранить данные о создавшем/изменившем запись. При вставке/изменении записи в таблице прописывать в него соответствующую информацию. Я обычно пишу SYSTEM_USER(значение текущего имени входа). Еще обычно требуется дата последнего изменения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2013, 14:47 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Baby1, Сделал вот такой триггер который при добавлении или изменении строки в таблице Proshivki2 заносит имя и дату изменения в таблицу UpdateProshivki1: ALTER TRIGGER updatedby4 ON Proshivki2 FOR INSERT, UPDATE AS INSERT INTO UpdateProshivki1 (ID, UpdateDate, UpdatedBy) SELECT ID, getdate(), SYSTEM_USER FROM inserted Дальше у меня возникла проблема как выводить ID изменений UpdateProshivki1 соответствующих ID строк таблицы Proshivki2 (чтобы в форме выводились только изменения сделанные над данной записью)?? Можно как-то в триггере прописать?или надо запрос на DBGrid писать? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 09:57 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.02.2013, 12:11 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Я сделал проще: Создал триггер на занесение в стороннюю таблицу данных по изменению: [/SRC]ALTER TRIGGER updatedby4 ON Proshivki2 FOR INSERT, UPDATE AS INSERT INTO UpdateProshivki1 (ID, UpdateDate, UpdatedBy) SELECT ID, getdate(), SYSTEM_USER FROM inserted[/SRC] А потом в билдере по запросу выбираю соответствующие поля! Но спасибо за ответ, твой вариант с переменными таблицами попробую реализвать)) Кто-нибудь знает как в DBComboBox разрешить только забитые в него значения?Чтобы небыло вырианта что-то писать! Пробовал на события ставить ReadOnly=true , но все-ровно в некоторых случаях можно оставить пустую строку или написать отсебятину! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 09:44 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAКто-нибудь знает как в DBComboBox разрешить только забитые в него значения?Чтобы небыло вырианта что-то писать! ComboBox->Style = csDropDownList; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 10:54 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAА потом в билдере по запросу выбираю соответствующие поля!по какому запросу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2013, 11:26 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
SELECT UpdateDate, UpdatedBy FROM UpdateProshivki1 WHERE ID = " + DBEdit5->Text Вот такой запрос сравнивает ID который в Edit и выводит соответствующие записи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2013, 08:54 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
а, значит я неправильно понял задачу я думал, что FOGOT-BAstAстрок таблицы Proshivki2в Вашем диалоге несколько (грид там или типа того) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2013, 11:48 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Хахаха наверное дсотал тупыми вопросами всех уже=))) Но нужна подсказочка для решения такой задачи: Есть одна форма в С++ на которой будет работать 5-6 ОДНОТИПНЫХ таблиц (все столбцы идентичны по названию, кроме поля ID). Т.к. поля одинаковые, я хочу в зависимости от выбранного поля Тематика (опять оно=)))) выбирать конкретную такблицу! Пробовал реализовать (по-тупому) с помощью датасета и условий if-else, сравнивая из выбранного значения DBComboBox и подставляя соответствующие названия таблиц в CommandText компонента DataSet ADODataSet1->Close(); if (DBComboBox1->Text == "Комбайн") { ADODataSet1->Edit(); ADODataSet1->CommandText ="Kartochka_Kombain"; ADODataSet1->Open(); } else if (DBComboBox1->Text == "Трактор") { ADODataSet1->Edit(); ADODataSet1->CommandText="Kartochka_Traktor"; ADODataSet1->Open(); } else if (DBComboBox1->Text == "АГСЭ") { ADODataSet1->Edit(); ADODataSet1->CommandText="Kartochka_AGS"; ADODataSet1->Open(); } else if (DBComboBox1->Text == "АДАСЭ") { ADODataSet1->Edit(); ADODataSet1->CommandText="Kartochka_ADAS"; ADODataSet1->Open(); } else if (DBComboBox1->Text == "УКЭД") { ADODataSet1->Edit(); ADODataSet1->CommandText="Kartochka_YKED"; ADODataSet1->Open(); } else if (DBComboBox1->Text == "УКТУС-ТМ") { ADODataSet1->Edit(); ADODataSet1->CommandText="Kartochka_YKTYS"; ADODataSet1->Open(); } else if (DBComboBox1->Text == "УКШ") { ADODataSet1->Edit(); ADODataSet1->CommandText="Kartochka_YKSH"; ADODataSet1->Open(); } else { ShowMessage("Выберите тематику из списка! Иначе обратитесь к Администратору!"); } но не работает, то пишет что невозможно править датасет т.к. он закрыт, то открыт, и самое главное DBComboBox не вставляет значения пока ДатаСет не активирован...короче перепробовал открывать, закрывать по созданию, вставлять принудительно название таблиц в CommandText все тщетно... Спасибо заранее!=))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 11:26 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Обратитесь к тому, кто проектировал Вашу БД и спросите - а зачем это он создал 6 однотипных таблиц вместо одной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 11:49 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Дак это я и есть=))))Хочу унифицировать, что бы не создавать 6 форм, а использовать 1=))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 11:54 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
а если в одну таблицу все запихнуть, то как с 1 поля, допустим DBEdit, заносить в разные поля таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 11:59 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstA, а не проще иметь одну таблицу с доп. полем "Тематика", где и прописывать к чему относятся данные в строке, к тракторам или к комбайнам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:05 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
упс, обновляется медленно)))) не успеваю за всеми постами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:06 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAа если в одну таблицу все запихнуть, то как с 1 поля, допустим DBEdit, заносить в разные поля таблицы? в смысле? кидай структуру пары таблиц и что у тебя в Edit пишется. Посмотрим что к чему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:07 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Ввести поле type_id, где указывать, что это за запись - комбайн, трактор или еще что В результатеFOGOT-BAstAа если в одну таблицу все запихнуть, то как с 1 поля, допустим DBEdit, заносить в одно поле таблицы?поправил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:14 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
ДУмаю что 1-ой таблицей не обойтись т.к. там 2 ключевых поля (ID и ZavNomer - не должны повторятся). Поэтому я и разбил на 7 таблиц, чтобы избежать путаницы в дальнейшем. Вот структура 2-х таблиц: Таблица Kartochka_AGS: ID_AGS int Unchecked Tematika varchar(50) Checked Naimenovanie varchar(50) Checked DecNomer varchar(50) Checked ZavNomer int Checked MadeBy varchar(50) Checked DateNastroyka date Checked Mesto varchar(50) Checked Montazh varchar(50) Checked Vers_Programm varchar(50) Checked FIO_Programm varchar(50) Checked Zam_Programm varchar(100) Checked Date_Programm date Checked Sdelano_Programm varchar(100) Checked FIO_Progon varchar(50) Checked Zam_Progon varchar(100) Checked Date_Progon date Checked Sdelano_Progon varchar(100) Checked FIO_Funct varchar(50) Checked Zam_Funct varchar(100) Checked Date_Funct date Checked Sdelano_Funct varchar(100) Checked FIO_PSI varchar(50) Checked Zam_PSI varchar(100) Checked Date_PSI date Checked Sdelano_PSI varchar(100) Checked Sklad bit Checked Vladelec varchar(50) Checked Таблица Kartochka_ADAS ID_ADAS int Unchecked Tematika varchar(50) Checked Naimenovanie varchar(50) Checked DecNomer varchar(50) Checked ZavNomer int Checked MadeBy varchar(50) Checked DateNastroyka date Checked Mesto varchar(50) Checked Montazh varchar(50) Checked Vers_Programm varchar(50) Checked FIO_Programm varchar(50) Checked Zam_Programm varchar(100) Checked Date_Programm date Checked Sdelano_Programm varchar(100) Checked FIO_Progon varchar(50) Checked Zam_Progon varchar(100) Checked Date_Progon date Checked Sdelano_Progon varchar(100) Checked FIO_Funct varchar(50) Checked Zam_Funct varchar(100) Checked Date_Funct date Checked Sdelano_Funct varchar(100) Checked FIO_PSI varchar(50) Checked Zam_PSI varchar(100) Checked Date_PSI date Checked Sdelano_PSI varchar(100) Checked Sklad bit Checked Vladelec varchar(50) Checked Они одинаковые кроме 1 поля ID. Если делать одну таблицу то как избежать повторяющихся значений в поле ZavNomer, а если делать 7 таблиц то как к ним достучаться из одной формы С++??=)))) Геморрррр... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:30 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstA, Добавить на них ограниченние на уникальность данных. А на ID вообще можно счетчик впихнуть, типа нумеруем все строки по порядку и точка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:32 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Baby1, Счетчик стоит! А как сделать на уникальность, можно рассказать или ссылку почитать?=)))Если это ключ, то не подойдет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:36 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAкак избежать повторяющихся значений в поле ZavNomerгенерировать уникальные значения что за СУБД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:40 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstABaby1, Счетчик стоит! А как сделать на уникальность, можно рассказать или ссылку почитать?=)))Если это ключ, то не подойдет... Это зависит от СУБД. А вообще в поле ZavNomer данные как попадают? Пользователи руками вносят или его можно генерировать автоматически по какому-то принципу, главное чтоб уникальность отслеживалась? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 12:49 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Baby1, MIcrosoft SQL 2012, вносить должны руками!Может быть около 30 раз одно и тоже значение придется вносить, т.к. еще наименований в одной тематике очень много и у каждого свои завномера! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:39 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAкак избежать повторяющихся значений в поле ZavNomerFOGOT-BAstAMIcrosoft SQL 2012, вносить должны руками!unique constraint ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2013, 13:40 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Паганель, Не доганяю в чем будет уникальность поля если я сделаю его UNIQUE??Ведь значения смогут повторяться, а мне надо чтобы в одном наименовании мог быть только одна запись с конкретным номером!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 06:54 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAПаганель, Не доганяю в чем будет уникальность поля если я сделаю его UNIQUE??Ведь значения смогут повторяться, а мне надо чтобы в одном наименовании мог быть только одна запись с конкретным номером!! Значения повторяться НЕ смогут при таком ограничении. Если пользователь попытается ввести в поле значение, которое уже существует, то получит ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 08:02 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Блин, а мне надо чтобы в конкретном наименовании заводские номера не повторялись, а не то что вообще! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 09:50 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Значит ограничение уникальности нужно добавить на совокупность столбцов Наименование и Заводской номер Почитай вот тут http://msdn.microsoft.com/ru-ru/library/ms190024.aspx#TsqlProcedure Второй пример как раз твой случай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 10:09 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Baby1, Ты реально мой спаситель)))Громедное спасибо! Паганель, Тебе тоже большая благодарность! Я уже начал процедуры писать)))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2013, 11:13 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Вот и снова я=))) Короче ситуация следующая: Есть DBCheckBox, по нажатии на него (когда в состоянни Active переводится) надо чтобы в другую таблицу заносились поля ID и ZavNomer из действующей таблицы (чтобы была связь между таблицами)! Сделал такой вот запрос: INSERT INTO Sklad (ID_Sklad, ZavNomer) SELECT Kartochka.ID_Kartochka, Kartochka.ZavNomer FROM Kartochka INNER JOIN Sklad ON Kartochka.ID_Kartochka = Sklad.ID_Sklad Не робит=)))) Точнее в SQL пишет что В таблицу Kartochka так же есть битовое поле Sklad которое становится либо 1 либо 0 в зависимости от состояния DBCheckBox'a - может как-то можно плясать от этого? Короче как всегда я открыт для предложений! Заранее спасибо всем добрякам!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2013, 10:57 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAв SQL пишет что В таблицу Kartochka так же есть битовое поле Sklad которое становится либо 1 либо 0 в зависимости от состояния DBCheckBox'aтак и пишет? не верю! приведите, пожалуйста, оригинальный текст ошибки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2013, 11:06 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
В режиме отладки С++ возвращает ошибку: 'CommandText does not return a result set' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2013, 12:38 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Так это проблема не SQL а С++ Какой класс и как именно используете для выполнения INSERT ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2013, 12:40 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
ПаганельТак это проблема не SQL а С++ Какой класс и как именно используете для выполнения INSERT ? С помощью метода, описанного Baby1 (2 пост на 1 странице). Может что-то накосячил, но ща не буду разбираться, только завтра... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2013, 13:25 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
Паганель Table 23.1 ADO components Можно хотябы конекретизировать поиск? А то на инглише лопатить 10 страниц неохота!! Что искать-то? Вставил данный запрос в ДатаСет и начал выдавать таку же ошибку! Вот такая мысль: запрос пытается вставить значение в таблицу по ID, но в таблице Sklad пустое значение ID и он не может сопоставить значения?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 09:43 |
|
||
|
Select в ADOQuery C++ XE3
|
|||
|---|---|---|---|
|
#18+
FOGOT-BAstAПаганель Table 23.1 ADO components Можно хотябы конекретизировать поиск?Конкретизирую: смотри таблицу 23.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2013, 11:16 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2020440]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 181ms |

| 0 / 0 |
