Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.28;
Скачать: CL | DM;

Вниз

Delphi. Соединение с БД MS SQL Server   Найти похожие ветки 

 
Соня   (2011-05-16 14:48) [0]

Считываю данные из таблиц БД в SQL Server с помощью DBGrid. В пяти таблицах данные считываются все, а в одной вообще не считываются! То есть видно, что появились соответствующие поля, количество строк = количеству строк в таблице БД, а сами строки пустые!

Может кто что сказать по этому поводу?


 
Ega23 ©   (2011-05-16 14:55) [1]

Это ошибка. В программе.


 
sniknik ©   (2011-05-16 14:57) [2]

в DBGrid данных нет!!! это тебе в виде наглядного подтверждения...

> а сами строки пустые!
наделал колонок с несуществующими полями?


 
Ega23 ©   (2011-05-16 14:57) [3]

А если без зубоскальства, то:
1. Версия delphi, версия MS SQL.
2. Скрипт на выборку данных.
3. Результаты работы данного скрипта в QA (или в студии).


 
Соня   (2011-05-16 15:09) [4]

Ega23 ©
1. Delphi 7, MS SQL Server 2008 R2
2. Скрипта нет. Я просто накидала в DataModule компоненты (ADOConnection, ADOTable, ADODataSet), соединила его с MainForm, на которой добавила DBGrid. Каждый DBGrid связала с DataSet.
5 штук работают, а шестая не работает! Притом запрос на выборку данных из таблицы возвращает непустые значения...


 
Соня   (2011-05-16 15:10) [5]

sniknik
>в DBGrid данных нет!!! я знаю, я его использую для отображения данных.


 
Соня   (2011-05-16 15:11) [6]

sniknik
> наделал колонок с несуществующими полями? (не наделал, а наделала)
Да я ещё ничего не создавала...


 
Ega23 ©   (2011-05-16 15:13) [7]


> Каждый DBGrid связала с DataSet.

C DataSet или с DataSource?


> 5 штук работают, а шестая не работает! Притом запрос на
> выборку данных из таблицы возвращает непустые значения..


Чудес не бывает. Создай отдельный модуль, помести туда Connection и свою 6-ю таблицу, свяжи с ней один DBGrid

P.S.
Не работай с TADOTable, используй TADODataSet.


 
sniknik ©   (2011-05-16 15:15) [8]

> Да я ещё ничего не создавала...
значит скопипастил.

т.к.
> запрос на выборку данных из таблицы возвращает непустые значения...
то вариантов общем то не осталось.


 
Соня   (2011-05-16 15:16) [9]

Ega23
> C DataSet или с DataSource?
 Да, sorry :-)
> Создай отдельный модуль, помести туда Connection и свою 6-ю таблицу, свяжи с ней один DBGrid
 Хорошо, сейчас буду пробовать. Спасибо за совет :-)
> Не работай с TADOTable, используй TADODataSet
 По каким причинам?


 
sniknik ©   (2011-05-16 15:17) [10]

> помести туда Connection и свою 6-ю таблицу, свяжи с ней один DBGrid
+
помести = создай новые, с панели дельфи, а не копипастом со старого/не рабочего проекта.


 
sniknik ©   (2011-05-16 15:18) [11]

> По каким причинам?
ну, например, каждый раз спрашивая что-то, тебе будут говорить чтобы не использовал, и т.д. но только не то о чем спрашивал...

как причина? покатит?


 
Соня   (2011-05-16 15:19) [12]

С новым модулем то же самое...


 
Ega23 ©   (2011-05-16 15:20) [13]


>  По каким причинам?

Причин - миллион. Но, боюсь, что тебе ещё рановато, многое не поймёшь.
Впрочем, почему бы и нет?
http://www.delphimaster.ru/searchresults.html?cx=partner-pub-9212733226161585%3Al0c7n49v7kz&cof=FORID%3A9&ie=windows-1251&q=TADOTable&sa=%CF%EE%E8%F1%EA&siteurl=delphimaster.ru%2Fsearch.html#985


 
Ega23 ©   (2011-05-16 15:21) [14]


> С новым модулем то же самое...


Давай скрипт на создание таблицы.
Плюс заодно выполни запрос select count(*) from <Имя таблицы>


 
Соня   (2011-05-16 15:24) [15]

sniknik ©
>значит скопипастил.
Причём тут это? Я ничего не копировала, а создала новый проект с нуля. Да и создавать тут нечего - только соединение с БД делаю.


 
Соня   (2011-05-16 15:25) [16]

Ega23 ©
>тебе ещё рановато
Простите, дяденька, за несвоевременный вопрос :-))


 
Соня   (2011-05-16 15:27) [17]

Ega23 ©
select COUNT(*) from Video_Rental_DB.dbo.Genres возвращает число 9, как и должно быть.


 
Соня   (2011-05-16 15:28) [18]

Ega23 ©
CREATE TABLE Genres(
 Id BigInt IDENTITY PRIMARY KEY,
 Title VarChar( 20 ) NOT NULL,
 About VarChar( 150 ) NOT NULL );


 
Соня   (2011-05-16 15:29) [19]

sniknik ©
> как причина? покатит?
Не смешно.


 
sniknik ©   (2011-05-16 15:32) [20]

> Не смешно.
не смеюсь.


 
Ega23 ©   (2011-05-16 15:34) [21]


> Простите, дяденька, за несвоевременный вопрос :-))


Ничего личного, но:
1. Объяснять почему - это действительно долго, на много страниц обсуждения.
2. Судя по стилю заданного вопроса уровень твой действительно "не ахти".
3. Такие обсуждения минимум раз в полгода возникают, за 8 лет надоело переливать из пустого в порожнее.
4. Ответ на вопрос даст нормальная литература плюс Google
5. Учитывая всё вышесказанное, возникает вопрос: нафига тебя грузить такой информацией, которую ты пока не можешь воспринять (а это - время, а врям - деньги)?

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

З.Ы. Надо FAQ на эту тему расширить, что-ли...


 
Соня   (2011-05-16 15:34) [22]

Ega23 ©
А зачем скрипт и запрос? Мне почему-то кажется, что проблема в соединении с БД...


 
Ega23 ©   (2011-05-16 15:35) [23]


> Соня   (16.05.11 15:28) [18]
>
> Ega23 ©
> CREATE TABLE Genres(


Права на чтение таблицы есть?


 
Ega23 ©   (2011-05-16 15:36) [24]


> А зачем скрипт и запрос? Мне почему-то кажется, что проблема
> в соединении с БД...


Затем, что в таблице могут всякие экзотические типы данных использоваться. А запрос - чтобы убедиться, что записи действительно есть.


 
Соня   (2011-05-16 15:36) [25]

Ega23 ©
Спасибо за объяснение :-)
А что по моему вопросу? Есть что-нибудь? :-)


 
Соня   (2011-05-16 15:37) [26]

Ega23 ©
> Права на чтение таблицы есть?
Нет, никаких прав нет.


 
Соня   (2011-05-16 15:38) [27]

Соня   (16.05.11 15:37) [26]
Ega23 ©
> Права на чтение таблицы есть?
Нет, никаких прав нет.

В смысле, что я не указывала никаких ограничений :-) Так что все пользователи могут свободно просматривать эту информацию.


 
Ega23 ©   (2011-05-16 15:40) [28]

ОК.
1. Новый проект, главная форма.
2. На форму кидаешь TADOConnection, TADODataSet, TDataSource, TDBGrid.
3. В свойствах TADOConnection идёшь на ConnectionString, делаешь всё что нужно. Убеждаешься, что подключение точно к той базе.
3. В TADODataSet устанавливаешь Connection := ADOConnection1, в поле CommandText пишешь select * from Genres
4. DataSource1.DataSet :=  ADODataSet1;
5. DBGrid1.DataSource := DataSource1;
6. Без запуска программы идёшь в свойства ADODataSet1 и ставишь Active := True;


 
Ega23 ©   (2011-05-16 15:41) [29]


> Ega23 ©   (16.05.11 15:40) [28]


вдогонку:
Всё делаешь по-честному, без Copy-Paste.


 
sniknik ©   (2011-05-16 15:42) [30]

> select COUNT(*) from Video_Rental_DB.dbo.Genres возвращает число 9
а RecordSet.RecordCount  после запроса select * from Video_Rental_DB.dbo.Genres какое число возвращает?


 
Соня   (2011-05-16 15:47) [31]

Ega23 ©
Делаю


 
Соня   (2011-05-16 15:50) [32]

Я не программно прописываю, я свойства указываю.


 
Соня   (2011-05-16 15:51) [33]

Помогло :-)))
Спасибо большое :-)


 
Ega23 ©   (2011-05-16 15:51) [34]


> Я не программно прописываю, я свойства указываю.


Да, именно свойства. До программного потом доберёмся, если потребуется.


 
И. Павел ©   (2011-05-16 15:51) [35]

> [0] Соня   (16.05.11 14:48)

Судя по описанию проблемы, кажется, что у вас у Table выставлено в false свойство DefaultDrawing. Тогда таблица действительно будет содержать все записи/поля но они будут пустыми.


 
Соня   (2011-05-16 15:51) [36]

Только я не поняла, в чём же моя ошибка была...?


 
Ega23 ©   (2011-05-16 15:51) [37]


> Помогло :-)))
> Спасибо большое :-)


Ну вот тебе одна из причин, почему не стоит использовать TADOTable  :))))


 
Соня   (2011-05-16 15:55) [38]

И. Павел ©
И правда... Наверное, случайно ткнула... :-))))) Глупая...


 
Соня   (2011-05-16 15:55) [39]

Всем большое спасибо!!! :-)))))


 
sniknik ©   (2011-05-16 16:01) [40]

> И правда... Наверное, случайно ткнула... :-))))) Глупая...
два раза... ->
> Причём тут это? Я ничего не копировала, а создала новый проект с нуля. Да и создавать тут нечего - только соединение с БД делаю.
или врун вдобавок.



Страницы: 1 2 вся ветка

Текущий архив: 2011.08.28;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.008 c
15-1304428882
Дмитрий С
2011-05-03 17:21
2011.08.28
Как вы относитесь к работе, которой сами руководите?


15-1304800194
Юрий
2011-05-08 00:29
2011.08.28
С днем рождения ! 8 мая 2011 воскресенье


1-1264209222
Gear
2010-01-23 04:13
2011.08.28
вызов MessageDlg из отдельной нитки


2-1305445442
maksim
2011-05-15 11:44
2011.08.28
3 потока и одна переменная


8-1215338411
NIK
2008-07-06 14:00
2011.08.28
basswma