Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » MsSql And C++ Builder

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

BigBoBo1



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1 Проблема
 Формирую строку для Query  
DataModule2->ADOQueryTemp->SQL->Add("SELECT ISNULL(Medicine,0) as Medicine FROM ORDERDETAIL WHERE Medicine = "+SeekValue[0]+" AND OrderTitle = "+DataModule2->ADOTableOrderDetail->FieldByName("OrderTitle")->Value+" AND PriceOfWholeSell = "+SeekValue[4]+" AND PriceOfRetail = "+SeekValue[5]);
 
SeekValue - массив типа Varant.
 
Выдает собщение об ошибке - Мол типа ошибка в строке после запятой.
Есть подозрения что SeekValue[5] = 5,1, а MsSQL в запросах использует формат 5.1.
 
Кто что об этом думает помогите.
 

Всего записей: 134 | Зарегистр. 19-12-2002 | Отправлено: 12:46 28-05-2003
Tishka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может быть, в этом случае нужно заменить ',' на '.'. к тому же, я не уверен, что все SeekValue сами преобразуются в строки. А в FieldByName("OrderTitle")->Value вместо Value лучше написать AsString.
 

Всего записей: 113 | Зарегистр. 22-11-2002 | Отправлено: 16:53 28-05-2003
Bloody_Nokia_Adept



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BigBoBo1

Цитата:
Кто что об этом думает помогите

Хорошим тоном есть использование динамических переменных, тогда и подобных проблем не будет.
 
В самом запросе на месте переменных ставишь '?', а потом на их место биндишь реальные значения. Сразу убьешь двух зайцев:
1. не будет проблем с преобразованием (все за тебя сделают ado + mssql)
2. однотипные запросы будут быстрее выполняться, т.к. у СУБД уже имеется план их выполнения останется лишь подставить реальные значения и все!

Всего записей: 785 | Зарегистр. 27-11-2002 | Отправлено: 17:00 28-05-2003
Thomas78



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А можно пример соединения и запроса типа SELECT * from table, в борланде с mssql?
 

Всего записей: 578 | Зарегистр. 07-02-2002 | Отправлено: 13:08 06-05-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Thomas78
Конечно можно. Создаешь в BDE связь типа MSSQL со своим скл сервером, указываешь какую базу из него юзать, потом в sqlquery в databasename указываешь название этого соединения, а потом в совйстве sql пишешь запрос запускаешь наслаждаешься, если что не понятно опишу все пошагам.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:47 07-05-2004
Thomas78



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShIvADeSt
 
 

Цитата:
Создаешь в BDE связь типа MSSQL со своим скл сервером,  

 
 
Не получается... Запускаю BDE Administrator -> New -> MSSQL
Появляется слева MSSQL1, а справа definition, там можно отредактировать некоторые настройки, типа Aplication name, database name, user name and etc...
 
 
У меня получается с MySQL так: нажимаю вкладку dbExpress, там выбираю SQL connection, и в ёё настройках(Connection name) MySQL, ну дальше уже не важно...
Хотел добавить туда же MSSQL, но не получается...

Всего записей: 578 | Зарегистр. 07-02-2002 | Отправлено: 08:52 07-05-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Объясняю подробно, так как с MySQL не работал, а вот с MSSQL работаю. Первое запускаешь BDE. Потом New->MSSQL. Потом в свойствах server (или что вроде этого сейчас под рукой нет BDE в понедельник уточню) пишешль имя своего сервера с MSSQL, как у нас например SQL сервер стоит на компе н-р назыввается SERVER так вот там прописываешь SERVER, потом в поле Databse Name пишешь название базы с которой ты хочешь рабоать н-р  MyCoolBase, также можешь прописать имя пользователя, под которым будешь конектится. Все по настройке в BDE, теперь заходишь в билдер, там кидаешь на форму компонент SQLQuery, у него в свойствах DatabaseName выбираешь MSSQL1, как у тебя названо соединение в BDE, потом в свойствах SQL пишешь свой запрос, свойство Actiove делаешь равным true у тебя должно возникунть окно с запросом пароля, вводишь его и все твой запрос обрабатывается SQL сервером. Если что опять не понятно пиши, я отвечу письмом с программой которая работает с SQL сервером.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 01:12 08-05-2004
Arion



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я вот только одно не пойму, зачем при работе с MSSQL использовать BDE. Какой в этом смысл, когда есть ADO и оно специально под него заточено, соответственно имеем большую производительность и поддержку со стороны операционной системы (нач. с Win2K).
 
Добавлено

Цитата:
Есть подозрения что SeekValue[5] = 5,1, а MsSQL в запросах использует формат 5.1

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

Всего записей: 436 | Зарегистр. 29-06-2003 | Отправлено: 09:26 08-05-2004
Thomas78



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShIvADeSt
 
 
Ок... буду полностью описывать:
 
Запустил борланд с++ builder 6 -> database -> explore ->
object -> BDE Administrator -> object -> New -> MSSQL ->
Далее появляется слева MSSQL и справа Definition, в них проставляю
следущие параметры:
Application name: kmb
Database name: kmb
host name: localhost
user name: user
 
Всё остальное, оставляю как есть...
Далее в закладках BDE -> Query:
DataBasename -> MSSQL
Active -> True
Далее идёт типа соединение, после чего выдаёт:
BDE Error: 11277  [0x2C] [0x D]
Cannot locate or connect to SQL server.
 
Добавлено
Arion
 

Цитата:
Я вот только одно не пойму, зачем при работе с MSSQL использовать BDE. Какой в этом смысл, когда есть ADO и оно специально под него заточено, соответственно имеем большую производительность и поддержку со стороны операционной системы (нач. с Win2K).  

 
 
Действительно попробывал с помощью АДО компонента, сразу получилось... Посмотрим, как дальше будет...
 
Добавлено
Arion
 
 
А как сделать, чтоб при выводе текста, он показывал не поле MEMO, а нормальный текст?

Всего записей: 578 | Зарегистр. 07-02-2002 | Отправлено: 08:46 11-05-2004
Arion



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А как сделать, чтоб при выводе текста, он показывал не поле MEMO, а нормальный текст?

Либо вручную (ADOQuery1.FieldByName('myField').AsString), либо использовать в качестве поля вывода DBMemo.

Всего записей: 436 | Зарегистр. 29-06-2003 | Отправлено: 13:39 11-05-2004 | Исправлено: Arion, 13:40 11-05-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Thomas78

Цитата:
host name: localhost

надо не хостнэйм а server name, тогда все нормуль.

Цитата:
А как сделать, чтоб при выводе текста, он показывал не поле MEMO, а нормальный текст?


Цитата:
Либо вручную (ADOQuery1.FieldByName('myField').AsString), либо использовать в качестве поля вывода DBMemo.

Лучше всего второе, так как мемо обычно длинное


----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:46 12-05-2004
Thomas78



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
либо использовать в качестве поля вывода DBMemo.

 
Как его использовать? Где и что нужно изменить?

Всего записей: 578 | Зарегистр. 07-02-2002 | Отправлено: 09:00 12-05-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как его использовать? Где и что нужно изменить?

Ничего менять не надо. Кидаешь на форму DataSource, в свойстве DataSet выбираешь свой ADO(Sql)Query. Потом кидаешь на форму DBMemo, там в качестве DataSource выбираешь свою DataSource, а в свойстве DataField выбираешь поле, которое хочешь связать с Мемо. А вообще в примерах должны идти хорошие программки для разбирания принципов работы, я по ним учился, но еслит что спрашивай дальше, программирование СУБД дело интересное

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:42 13-05-2004
Thomas78



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShIvADeSt
 C DBMemo понятно, сделал тоже самое DBGrid, не получается...
 

Цитата:
А вообще в примерах должны идти хорошие программки для разбирания принципов работы, я по ним учился, но еслит что спрашивай дальше, программирование СУБД дело интересное  

 
гляну...

Всего записей: 578 | Зарегистр. 07-02-2002 | Отправлено: 13:07 13-05-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 сделал тоже самое DBGrid

Thomas78
А так тебе надо чтобы в dbgrid поля мемо отображались с тектом? Это ИМХО никак, кроме как попробовать создать внутри ячейки DBMemo или породить свой класс, но я не пробовал, поэтому не буду советовать.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:46 14-05-2004
Thomas78



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShIvADeSt
 

Цитата:
 так тебе надо чтобы в dbgrid поля мемо отображались с тектом?

В тех же примерах билдера, отображаются же...
 
 
 

Всего записей: 578 | Зарегистр. 07-02-2002 | Отправлено: 08:52 14-05-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В тех же примерах билдера, отображаются же...

Проверял на Дельфи 6, не отображается пишется вместо текста Мемо. Какая база данных там используется, чтобы проверить и если сможешь потом дай исходники проекта.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:43 17-05-2004
Thomas78



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShIvADeSt
 

Цитата:
Проверял на Дельфи 6, не отображается пишется вместо текста Мемо. Какая база данных там используется, чтобы проверить и если сможешь потом дай исходники проекта.

 
Не очень понял, о какой базе идёт речь... И какие исходники дать...
Вот пример билдера: папка_билдера_\Examples\DBTasks\CtrlGrid
Борланд Билдер с++ 6.0.  
Если нету могу на почту кинуть...
 
 

Цитата:
Либо вручную (ADOQuery1.FieldByName('myField').AsString),

 
Что-то не понял, это где и как? Я на форму кинул ADODataSet1...
 
 

Всего записей: 578 | Зарегистр. 07-02-2002 | Отправлено: 09:30 17-05-2004
Arion



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Что-то не понял, это где и как?

Это значит - вручную рисовать на canvas грида требуемую строку. Метод этот муторный и особого счастья не приносит.

Всего записей: 436 | Зарегистр. 29-06-2003 | Отправлено: 18:48 17-05-2004
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Не очень понял, о какой базе идёт речь... И какие исходники дать...  
Вот пример билдера: папка_билдера_\Examples\DBTasks\CtrlGrid  
Борланд Билдер с++ 6.0.  
Если нету могу на почту кинуть...

Есть подозрения, что 6 билдер соответсвует 7 Дельфи а я проверял на 5 и 6, а там точно не отображается Мемо, да я и не увидел там Мемо. Упакуй испходники и екзешник с базами н-р винасей или раром 3 чтобы поменьше было в размере и скажи отправь на shiva_destroyer (C) mail.ru я посмотрю.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 00:49 18-05-2004
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » MsSql And C++ Builder


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru