Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.005 c
15-1304220544
PiterPen
2011-05-01 07:29
2011.08.28
Delphi x64


15-1304994305
IPranker
2011-05-10 06:25
2011.08.28
Скачать видео со станицы.


15-1304454597
Юрий
2011-05-04 00:29
2011.08.28
С днем рождения ! 4 мая 2011 среда


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


4-1249212093
QAZ
2009-08-02 15:21
2011.08.28
Hook RawInput





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский