Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Delphi (все версии) - часть 3

Автор: vladk1973
Дата сообщения: 03.12.2007 12:56
SergeBS

Цитата:
как с помощью этих индексов будешь переходить в одном датасете на активную запись другого

Гриды, и датасеты не взаимосвязаны между собой, это не master-detail связь
Индекс, а вернее речь шла о Primary key, как раз позволяет идентифицировать запись в Query.

Цитата:
DBGrid1 соединен с базой через ADOQuery и DataSource2.

Оченьвидно опечатка Ясно, что речь идеь о DBGrid2

Автор: ShamaN
Дата сообщения: 03.12.2007 20:39
Написал небольшую программу для небольшого преобразования БД FireBird. В ней построчно модифицируются все записи.
На слабеньком компьютере под WinXP SP2 Prof она работает намного быстрее, чем под на сервере под Win 2003 SP1, который намного более произвордительный (пробовал на 2-х разных серверах).

В чем причина тормозов на 2003 Win?
Автор: Tantos
Дата сообщения: 04.12.2007 05:32
ShamaN:
1. Смотри параметры транзакций (стоит ли AutoCommit и т.п.)
2. Сервера с HT-процессорами? Если да, то отключай.
Автор: adg208
Дата сообщения: 04.12.2007 07:12
Подскажите как удалить выделенную в BDGrid строку (текущую строку) с помощью SQL-запроса?
А так же как в BDGrid создать пустую строку с помощью SQL-запроса?
Автор: greenpc
Дата сообщения: 04.12.2007 11:20
adg208

Цитата:
Подскажите как удалить выделенную в BDGrid

sql.text :='delete from <таблица> where <id>='+ inttostr(<id текущего значения поля>

Цитата:
А так же как в BDGrid (DBGrid) создать пустую строку

никак, т.к. DBGrid это только компонента отображения БД
т.е. надо создавать "пустую" запись в БД
'insert into .....'

ЗЫ: а вобще-то RTFM
типа грубер понимание sql, работа с БД в дельфи
Автор: adg208
Дата сообщения: 04.12.2007 11:48

Цитата:
greenpc


Цитата:
никак, т.к. DBGrid это только компонента отображения БД


Это понятно, не правильно написал.
Подробнее:
На форме есть DBGrid и кнопка, DBGrid устественно подключен к базе. Есть ADOQuery
который в котором запрос
DataModule2.QuerySi.Active:=false;
DataModule2.QuerySi.SQL.Clear;
DataModule2.QuerySi.SQL.Add('select *');
DataModule2.QuerySi.SQL.Add('from si');
DataModule2.QuerySi.Active:=true;
DBGrid отображает все данные таблицы
При нажатии на кнопку открывается другая форма Form в которой идет заполнение полей таблицы.
Так вот при нажатии на эту кнопку открывается форма Form и строки редактирования не пустые, а с данными из первой строки базы.
А нужно чтобы в базе данных создалась новая строка и на форме Form строки редактирования были пустые.
Автор: dominiksus
Дата сообщения: 04.12.2007 11:51
люди, как вставить в twebbrowser(в режиме редактир.) специальные символы, такие как:
&#8592; (тут стрелка влево)
©
®

и др. чтобы они потом в html выглядели как нужно?
Автор: greenpc
Дата сообщения: 04.12.2007 11:54
adg208
1.insert в базу
2. locate max(...)
3. Открывашь свою форму
Автор: adg208
Дата сообщения: 04.12.2007 11:57
greenpc

Цитата:
1.insert в базу
2. locate max(...)
3. Открывашь свою форму

Напиши пожалуйста по подробнее?

Автор: greenpc
Дата сообщения: 04.12.2007 12:24
adg208

Цитата:
Напиши пожалуйста по подробнее

не могу, не телепат
1.нужно знать стуктуру БД
2.
Цитата:
открывается форма Form и строки редактирования не пустые, а с данными из первой строки базы

а почему из первой? явно ошибка.
3. как обычно - код в студию
4. еще раз - читать RTFM (желательно с этого и начать)
Автор: vladk1973
Дата сообщения: 04.12.2007 13:40
greenpc

Цитата:
а почему из первой?

Тут то как раз все ясно, в этой Form скорее всего так же стоит Query и "select * from..."
adg208
Попробуй Help почитать для начала, например про InsertRecord:


Код: Query.InsertRecord([CustNoEdit.Text, CoNameEdit.Text, AddrEdit.Text, Null, Null, Null, Null, Null, Null, DiscountEdit.Text]);
Автор: ShamaN
Дата сообщения: 04.12.2007 14:51

Цитата:
(стоит ли AutoCommit и т.п.)

AutoCommit почему-то не работал и я поставил СоmmitRetaining на таймер
Автор: greenpc
Дата сообщения: 04.12.2007 15:12
vladk1973

Цитата:
в этой Form скорее всего так же стоит Query

правильно сделать связку с "мастером"
ну и соосвественно без струкуры таблицы невозможно написать insert
т.к. у него ADO то удобнее через adocommand
хотя можно и через adoconnection.execute()
всетаки не верно через query делать insert
Автор: vladk1973
Дата сообщения: 04.12.2007 15:34
greenpc

Цитата:
всетаки не верно через query делать insert

Да, согласен. Просто у товарища скорее всего простейшие требования к приложению, по ним и Insert/Post прокатят...
Я обычно SQL процедуру для таких дел пишу, передаю в нее параметры вставки строкой
В процедуре парсю строку и делаю Insert. Гибко получается, если учесть что строку можно формировать циклом
for i:=0 to FieldsCount-1 do, то вообще независимость от датасета получаем
хм, отвлекся что то я

Автор: omihaz
Дата сообщения: 04.12.2007 17:42
Народ такой вопрос. Стоит BDS2006 со всеми патчами и прочим добром. Но когда отлаживаю программу, запускаю и если во время работы возникает ошибка, то все вешается. Не со всеми ошибками так, а с некоторыми. К примеру ошибки конекта ставят на паузу и приводят к остановке с уведомлением как и нужно. А вот ошибка перевода строки в число, вешают BDS такое впечатление что вечный цикл, и ничего сделать нельзя, даже сохранить проект, только завершение задачи bds.exe помогает

Может кто-то сталкивался с такой проблемой?
Автор: delover
Дата сообщения: 04.12.2007 18:07
omihaz
Во первых относительно решаемо с помощью памяти. У меня когда один гиг был, так я часто килял BSD но когда 2 гига вставил, то даже не помню, но если долго отлаживать то обязательно будет. Просто стоит запомнить раз и навсегда - это будет постоянно происходить - на то она и работа программера. А так как я когда то сделал в своей проге F9 - kill delphi32.exe, shift-f9 kill bds.exe, то теперь я даже не знаю что такое бесконечный цикл исключительных ситуаций, то есть когда одно исключение рождает другое и так до бесконечности. Это всё нормальные явления и они уже давно имеют свои определения. Так стоит ли постоянно лазить в taskbar? Один раз напиши и точно тебе говорю, что нервов сэкономишь просто кучу.

И ещё хочу всех дельфистов поздравить с днём информатики. Ура!!
Автор: kalkin
Дата сообщения: 04.12.2007 18:41
Натолкнулся на проблему помогите разобраться:
С помощью Indy пытаюсь реализовать ssl +sock5
1)Для этого создал IdSSLIOHandlerSocket, IdSocksInfo, IdHTTP, взаимно их связал.
2)Библиотеки для поддержки SSL в Indy загрузил

При указании сокса и порта и выполнении операции Get выдается следующая ошибка:
Project raised exception class EAccessViolation with message
'Access violation at address 00475AB8 in module xxxx.exe.'
Read of address 00000014'.

При отключении сокса (в SocksInfo устанавливаю Version:=svNoSocks) сайт открывается без ошибок.
При подключении сокса, но при отключенном SSL режиме (просто http://) сайт также открывается нормально.
При одновременном https:// и наличии сокс-сервера выдается ошибка.
Автор: oan42
Дата сообщения: 04.12.2007 23:40
kalkin
В отладчике запустите прогу, чтобы увидеть на какой строчке в Indy
происходит ошибка.
Автор: vladk1973
Дата сообщения: 05.12.2007 05:29
omihaz
delover
Два гига говоришь?
А с каких это пор программисты решают проблемы кода увеличением линеек памяти?
Проблема в коде, имхо
Автор: kalkin
Дата сообщения: 05.12.2007 19:08
oan42
в юните IdSSLOpenSSL
в этой функции ошибка (использую делфи 7):

function TIdSSLSocket.Send(var ABuf; ALen: integer): integer;
var
err: Integer;
begin
Result := IdSslWrite(fSSL, @ABuf, ALen); {ВОТ СДЕСЬ ДЕБАГЕР РУГАЕТСЯ}
err := GetSSLError(Result);
if (err = OPENSSL_SSL_ERROR_WANT_READ) or (err = OPENSSL_SSL_ERROR_WANT_WRITE) then begin
Result := IdSslWrite(fSSL, @ABuf, ALen);
end;
end;

как отладить ?
Автор: acue
Дата сообщения: 06.12.2007 07:59
kalkin
Поставь брекпоинт туда где ругается отладчик. Запусти прогу под отладчиком. После остановки на БП жми F7 - войдешь в функцию IdSSLWrite. Там дальше F8 (step over) или F7 (step into) построчно пойдешь по коду. Проверяй значения переменных, ну и т.п.
Автор: oan42
Дата сообщения: 06.12.2007 12:17
kalkin
Это код из Indy9.
Код с тех пор поменялся.
Автор: delover
Дата сообщения: 06.12.2007 15:27
vladk1973

Цитата:
Два гига говоришь?
А с каких это пор программисты решают проблемы кода увеличением линеек памяти?
Проблема в коде, имхо

Эт ты немного не в курсе наверное. В IDE D2006 полно потоков и всяких приблуд с редактором и синтаксическими подсветками. Когда делаешь отладку, тем более еси пишешь компоненты и динамически грузишь bpl-ки то всякой ерунды остаётся в памяти много, да и дед-локи частенько. Просто я заметил что частенько прибивал BDS когда был гиг. А потом почему-то такая ерунда гораздо реже. Подобные вопросы мы обсуждали в code-централ и квелити-централ. Даже в самой IDE мы нашарили массу глюков. А что говорить про наборы компонентов которые устанавливают пользователи? Про два гига - это реальная информация. Моё дело сказать, а там сами мотайте на ус.

Добавлено:
kalkin
Посмотри адрес буфера @ABuf, он не должен быть nil
Автор: vladk1973
Дата сообщения: 06.12.2007 16:30
delover

Цитата:
Эт ты немного не в курсе наверное. В IDE D2006 полно потоков и всяких приблуд с редактором и синтаксическими подсветками

Может быть может быть...Не буду спорить Зачем только на глючной версии сидеть
Я юзаю несколько версий, но выше BDS2005 не поднимался, да и та мне не очень
Автор: phenix18
Дата сообщения: 06.12.2007 16:48
Народ помогите найти листинг турнирнуй сортировки с пояснениями.... плз оч. нужно!
Автор: delover
Дата сообщения: 06.12.2007 17:28
vladk1973

Цитата:
Не буду спорить Зачем только на глючной версии сидеть

Ну во первых D2005 действительно глючная. Во вторых D2006 очень глюко устойчивая. Идеальна, пока не начинаешь ставить кучу компонентов которые для D2006 не расчитаны. В третьих у меня она купленная, т.е. легальная и дома и на работе. В четвёртых есть моя библиотека компонентов и она работает и отлаживается под всеми дельфями независимо - под D5,D6,D7,D8 for net,D2005 и D2006. И ничего - живу нормально во всех версиях.
Автор: vladk1973
Дата сообщения: 07.12.2007 03:10
delover
Да, от купленной 2006 я б не отказался


phenix18

Цитата:
турнирнуй сортировки с пояснениями

Это тебе в гугль надо, набери там "компонент Delphi для турнирнуй сортировки"
Автор: delover
Дата сообщения: 07.12.2007 14:37
vladk1973

Цитата:
Да, от купленной 2006 я б не отказался

Понятное дело. Думаю понятно, что мы дерьмо покупать бы не стали. Это я конечно грубо, но твоими словами про D2005. Говорят D2007 ещё лучше, но её я не видел - хотелось бы купленную.
Автор: Rudia
Дата сообщения: 07.12.2007 14:51

Цитата:
Понятное дело. Думаю понятно, что мы дерьмо покупать бы не стали. Это я конечно грубо, но твоими словами про D2005. Говорят D2007 ещё лучше, но её я не видел - хотелось бы купленную.
Чтоб оценить 2007 можно и пиратку попробывать, у меня сейчас стоит rad studio 2007 update 3 c неофициальным ноябрьским апдейтом и патчем с Architect лицензией - вроде ничего, работает стабильно и довольно шустро. Занимаемся ознакомлением, может удастся начальство уломать на лицензию) Диск был куплен за 4 у.е., причем апдейт, скачанный с сайта Codegear встал на это дело)
Автор: delover
Дата сообщения: 07.12.2007 14:58
Rudia

Цитата:
Диск был куплен за 4 у.е., причем апдейт, скачанный с сайта Codegear встал на это дело)

А что он не встанет то? У них всегда с этим всё нормально было - политика у них мягкая, не такая как у мелкомягких. ))


Цитата:
Чтоб оценить 2007 можно и пиратку попробывать

Ну и как тебе? Что нового? Generation появились? Я думаю что подожду заявлений тех кто уже ставил. После лицензионки, я действительно почуствовал, что такое легальный инструмент. И очень не охота ломатого.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: 1С: Конвертация данных 2.0


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.