Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 775

/ вопрос открыт /

Здравствуйте, эксперты!
как данные из TClientDataSet сохранить в таблицу?

Казаков Николай Константинович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Казаков Николай Константинович (статус: 1-ый класс)
Вопрос отправлен: 1 декабря 2010, 15:54
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 9; последнее сообщение — 3 декабря 2010, 14:19; участников в обсуждении: 4.

1 декабря 2010, 16:00: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Программирование баз данных (БД) модератором min@y™

min@y™

min@y™ (статус: Доктор наук), 1 декабря 2010, 16:02 [#1]:

В какую таблицу?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Казаков Николай Константинович

Казаков Николай Константинович (статус: 1-ый класс), 1 декабря 2010, 16:56 [#2]:

ой извиняюсь в sql таблицу, чтобы по ней запросы можно было выполнять
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 1 декабря 2010, 19:41 [#3]:

SQL-таблица? Какое-то новое научное открытие.
Казаков Николай Константинович

Казаков Николай Константинович (статус: 1-ый класс), 2 декабря 2010, 16:07 [#4]:

Есть база данных mdf, необходимо подключиться к ней и создать в этой базе таблицу, если выражаюсь не праильно извините с такой задачей столкнулся впервые. Таблица создается запросом sql.
Казаков Николай Константинович

Казаков Николай Константинович (статус: 1-ый класс), 3 декабря 2010, 10:15 [#5]:

таблицу удалось создать, возникла проблема с ее заполнение не работает запрос:
SQLQuery1.SQL.Add('INSERT INTO MyTable (VZPROJ) VALUES ("qw");');
выдает ошибку:
The name "qw" is not permitted in this context. Valid expressions are constant expressions, and (in some context) variables. Column
Вадим К

Вадим К (статус: Академик), 3 декабря 2010, 10:22 [#6]:

а в таблице mytable есть поле VZPROJ строкового типа? И кавычки там лучше наверно одинарные поставить.
Галочка "подтверждения прочтения" - вселенское зло.
Казаков Николай Константинович

Казаков Николай Константинович (статус: 1-ый класс), 3 декабря 2010, 10:42 [#7]:

да вы правы Вадим К. проблемма разрешилась нужно использовать апостроф. Еще один вопрос, при подключении базы данных вылезает запрос веести User_Name и Password можно ли как то отключить это окно. в настройках указал OS Autetication := true. но окно все равно вылезает, хоть и дает доступ после ввода соответсвующих данных
Вадим К

Вадим К (статус: Академик), 3 декабря 2010, 11:27 [#8]:

я не знаю, как к базе подключаетесь, поэтому не могу ничего порекомендовать. Хотя в некоторых компонентах есть что то "show_login_window"
Галочка "подтверждения прочтения" - вселенское зло.
Казаков Николай Константинович

Казаков Николай Константинович (статус: 1-ый класс), 3 декабря 2010, 14:19 [#9]:

Как говориться "Если долго мучиться, что-нибудь получиться"))
Выкладываю код моей процедуры, может кому-нибудь пригодится, у меня работает. Использовал компоненты TSQLConnection, TSQLQuery с вкладки dbExpress.

procedure TForm1.Button2Click(Sender: TObject);
var stSQL: string;
i: integer;
begin

try
SQLConnection1.Params.Values['HostName']:=Server; // имя сервера
SQLConnection1.Params.Values['DataBase']:=MyBase ;
SQLConnection1.Params.Values['OS Authentication']:= 'True';
SQLConnection1.Open;
except
MessageDlg('Соединение с БД невозможно', mtError, [mbOK], 0);
exit;
end;

SQLQuery1.SQL.Add('IF EXISTS (SELECT * FROM sysobjects WHERE name ='+''''+'MyTable'+''''+') DELETE FROM MyTable;');
SQLQuery1.ExecSQL;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('IF EXISTS (SELECT * FROM sysobjects WHERE name ='+''''+'MyTable'+''''+') DROP TABLE MyTable;');
SQLQuery1.ExecSQL;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('CREATE TABLE MyTable (VZPROJ varchar(50), PARTITION varchar(50), '+
'MAKER varchar(50), STATE varchar(50), DATECRT varchar(50), DATEP varchar(50), '+
'DATEF varchar(50), DATETOCRD varchar(50), DATECRD varchar(50), DATEPLN varchar(50), '+
'DATEFIN varchar(50), DATECNCL varchar(50))');
SQLQuery1.ExecSQL;

cdsList.First;
for i:=1 to cdsList.RecordCount do
begin
stSQL:='INSERT INTO MyTable VALUES(';
if cdsList.FieldByName('VZPROJ').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('VZPROJ').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('PARTITION').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('PARTITION').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('MAKER').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('MAKER').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('STATE').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('STATE').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('DATECRT').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('DATECRT').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('DATEP').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('DATEP').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('DATEF').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('DATEF').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('DATETOCRD').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('DATETOCRD').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('DATECRD').AsString<>'' then
stSQL:=stSQL+' "'+cdsList.FieldByName('DATECRD').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('DATEPLN').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('DATEPLN').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('DATEFIN').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('DATEFIN').AsString+''','
else
stSQL:=stSQL+' NULL,';
if cdsList.FieldByName('DATECNCL').AsString<>'' then
stSQL:=stSQL+' '''+cdsList.FieldByName('DATECNCL').AsString+''''
else
stSQL:=stSQL+' NULL';

stSQL:=stSQL+');';

SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add(stSQL);
SQLQuery1.ExecSQL;
cdsList.Next;
end;

end;

Вадим К. огромное спасибо за участие и помощь

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:46
Выполнено за 0.02 сек.