Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2009, 12:13   #1
Ketra
 
Регистрация: 10.07.2009
Сообщений: 3
По умолчанию Run-time загрузка таблиц MS SQL Server в DBGrid Delphi 7

Реализовано подключение к произвольному MS SQL серверу и к произвольной БД, надо настроить выбор произвольной таблицы из ComboBox ( используется
Код:
 DM.ADOConnection .GetTableNames(TablesComboBox.Items , False);
но надо еще выбрать таблицу и загрузить ее в DBGrid.
Код:
procedure TMainForm.TablesComboBoxChange(Sender: TObject);
begin
  ADOTable .Active := false;
//  BrowseDBGrid .DataSource.DataSet  := nil;
  if TablesComboBox .ItemIndex >=0 then
  try
    ADOTable .TableName := TablesComboBox .Items [TablesComboBox .ItemIndex] ;
    except
      on E:Exception do
      begin
      MessageDlg('Error opening table: ' +
           #13#10 + E.ClassName, mtError, [mbOk],0);
//      LogError(E); http://delphi.about.com/od/database/l/aa103001a.htm
      Exit;
      end;
  end;
//
  BrowseDBGrid . Refresh ;
  ADOTable .Active := true;
EOleException "Таблица не существует"
Пустые представления загружаются, а на непустые - нет
Прогуглила, что-то глухо с этим совсем..
Ketra вне форума Ответить с цитированием
Старый 18.08.2009, 09:42   #2
Ketra
 
Регистрация: 10.07.2009
Сообщений: 3
По умолчанию

Решено с помощью ADOQuery.

Код:
procedure TMainForm.TablesComboBoxChange(Sender: TObject);
begin
  try
  if TablesComboBox .ItemIndex >=0 then
  begin
    with ADOQuery do
    begin
      Close;
      SQL.Clear;
      SQL.Add ('SELECT * FROM ' + TablesComboBox .Items [TablesComboBox .ItemIndex]);
      Open;
    end;
  end;
  finally

  end;
end;
Но теперь на таблицы со специальными симовлами в имени (_, пробел, etc.) вылетает ошибка "Недопустимое имя объекта <первое слово в имени таблицы>"
Ketra вне форума Ответить с цитированием
Старый 18.08.2009, 09:50   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Значит нужно ее в брекеты брать имя таблицы. Я не помню как в MS SQL но вот в Акцессе например [Имя таблицы]
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.08.2009, 16:31   #4
Ketra
 
Регистрация: 10.07.2009
Сообщений: 3
По умолчанию а на самом деле всебыло не так, как в _действительности_

Как оказалось, символ подчеркивания там вообще был не нужен, хотя в самой базе данных отображался именно так и присутствовал в имени таблицы. SQL запрос выполнился без него.

Экранирование - стандартно, либо двойными кавычками, либо [].

Последний раз редактировалось Ketra; 21.08.2009 в 16:36.
Ketra вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Run-time error '1004'. Недопустимый параметр! nikolai_P Microsoft Office Excel 2 20.04.2009 18:06
Ошибка Run-Time error 13 DEZuv Microsoft Office Access 0 03.04.2009 12:25
При создание edit, в режиме run-time, нет стандартного контекстного меню slips Общие вопросы Delphi 6 08.11.2008 17:05
Подскажите! Run-time error '7' Out of memory evgenjp Свободное общение 3 01.10.2008 09:16
загрузка таблиц excel в delphi Ромыч Помощь студентам 8 11.03.2008 19:17