Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191

Ошибка при изменении БД

23.09.2010, 16:16. Показов 946. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   if(s.SubString(1,s.AnsiPos("#")-1)=="reg")
   {
     for(Form2->Table1->First();!Form2->Table1->Eof;Form2->Table1->Next())
       {
         Form2->Table1->Edit();
         if(Form2->Table1->FieldByName("Имя")->Text==s.SubString(s.AnsiPos("#")+1,(s.AnsiPos("%")-s.AnsiPos("#")-1)));
         {
           ServerSocket1->Socket->Connections[0]->SendText("/s#Такое имя уже существует, попробуй другое$");
           return;
         }
       }
     Form2->Table1->Append();
     Form2->Table1->Edit();
     Form2->Table1->FieldByName("Имя")->Text=s.SubString(s.AnsiPos("#")+1,s.AnsiPos("%")-s.AnsiPos("#")-1);
     Form2->Table1->FieldByName("Пароль")->Text=s.SubString(s.AnsiPos("%")+1,s.AnsiPos("@")-s.AnsiPos("%")-1);
     Form2->Table1->FieldByName("Дата")->Text=Date().CurrentDate();
     Form2->Table1->FieldByName("Время")->Text=Time().CurrentTime();
     Form2->Table1->FieldByName("IP")->Text=String(ServerSocket1->Socket->RemoteAddress);
     Memo1->Lines->Add(s);
   }
Где тут ошибка??
Если не видно где не правильно у меня, кину ошибку. просто не охота было скрин делать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2010, 16:16
Ответы с готовыми решениями:

Ошибка Dataset not in edit or insert mode при изменении БД
Здравствуйте. использую дбгрид, ADOQuery, DataSource в общем строка в дбгриде допустим: Петров Петр Петрович, мужской, Водитель ...

Ошибка при изменении полей
Добрый день! Помогите, пожалуйста. На форме есть DBGrid, IBDatabase, IBTable, Source, DBNavigator и т.д. Проблема следующая, в...

Ошибка при создании объекта. (При изменении цвета заполнения фигуры)
Дано: Adobe Flash CS3 Prof. Требуется программно изменить цвет заполнения нарисованной фигуры, преобразованной в символ. При помощи...

5
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
24.09.2010, 08:15
Интересный у тебя цикл, никогда подобных записей не встречал, а вообще тебе не кажется что намного удобнее было бы запросом проверить есть такое имя в БД
C++
1
(SELECT бла бла бла FROM имя твоей таблицы WHERE Имя = '"+s.SubString(s.AnsiPos("#")+1,(s.AnsiPos("%")-s.AnsiPos("#")-1))+"' )
или нету оно и намного быстрее было и добавить в БД новую запись запросом тоже намного удобнне

не по теме:
Или Челябинские программисты настолько суровые что им проще в случае чего перебрать 1000 а иногда и более записей на нахождения повтора чем пойти по легкому пути и воспользоваться запросом=)
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
24.09.2010, 14:46  [ТС]
Цитата Сообщение от Larsus Посмотреть сообщение
не по теме:
Или Челябинские программисты настолько суровые что им проще в случае чего перебрать 1000 а иногда и более записей на нахождения повтора чем пойти по легкому пути и воспользоваться запросом=)

чет типа того)

Цитата Сообщение от Larsus Посмотреть сообщение
намного удобнее было бы запросом проверить есть такое имя в БД
я не умею так. не знаю что делать с Select From Where

Добавлено через 5 часов 8 минут
Так про ошибку ничего не знаешь?

Добавлено через 43 минуты
или напишите пример с Select From и Where
0
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
24.09.2010, 15:02
C++
1
2
3
4
5
6
7
8
    Query1->Close();
    Query1->SQL->Clear();
    Query1->SQL->Add("SELECT COUNT(*) AS CNT FROM 1 WHERE 2 =" + s.SubString(s.AnsiPos("#")+1,(s.AnsiPos("%")-s.AnsiPos("#")-1)));
    Query1->Open();
    if (Query1->FieldByName("CNT") != 0)
    {
        //такое имя уже существует
    }
заместо цифр в запросе
1 - название твоей таблицы
2 - имя поля в котором ищешь совпадение

ну и разумееться компоненту Query1 не забудь перед этим указать настройки соединения с БД как ты компоненту Table делал
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
24.09.2010, 16:12  [ТС]
в
C++
1
if (Query1->FieldByName("CNT") != 0)
что делает
Цитата Сообщение от Larsus Посмотреть сообщение
"CNT"
Добавлено через 52 секунды
и для чего надо закрывать Query в самом начале?
0
64 / 64 / 10
Регистрация: 19.10.2009
Сообщений: 234
25.09.2010, 08:05
Цитата Сообщение от ProstoMad Посмотреть сообщение
в
Код C++
1
if (Query1->FieldByName("CNT") != 0)
что делает
Сообщение от Larsus
"CNT"
мда тут ошибочка вышла правильно будет if (Query1->FieldByName("CNT")->AsInteger != 0)

на счет CNT, если просто написать
SQL
1
SELECT COUNT(*) FROM 1 WHERE бла бла бла
то ты не сможешь обратиться к полю в котором будет выведено количество записей так как запись типа
C++
1
Query1->FieldByName("COUNT(*)")->AsInteger
не будет работать, поэтому в самом запросе мы присваиваем нужное название этому полю я присвоил CNT можешь написать все что угодно только не забудь поставить AS.



Цитата Сообщение от ProstoMad Посмотреть сообщение
и для чего надо закрывать Query в самом начале?
Ну вообще это я всегда делаю на автомате и никогда не пробовал его не закрывать=), имхо так корректней ведь после его открытия ты же его не закрываешь значит в след раз он будет открыт перед его использованием=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.09.2010, 08:05
Помогаю со студенческими работами здесь

Ошибка при изменении записи и при сохранеии
Моя ошибка: Project Project1.exe raised exception class EOleException winch message 'невозможно выполнить каскадную операцию, которая...

Ошибка при изменении данных
Есть база данных, которая привязана к проекту через Binding Source. Вывожу данные таблицы в datagridview + в textbox'ы, что бы через них...

Ошибка при изменении пароля
Добрый день, прошу помощи в решение данной ситуации: При изменении пароля вылетает ошибка. VB не знаю. Код копировал с форума и пытался...

Ошибка при изменении графика
Здравствуйте. Возможно этот вопрос уже был, но ответа я на него не нашёл. Не могу изменить график в Маткаде 14. Жму на график, далее...

Ошибка при любом изменении БД
Пишу на АСП, через АДО. При попытке обновить изменения Recordset пишет: 'Текущий объект Recordset не поддерживает обновление. Это связано с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru