![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TTable [D6, MSSQL]
DimMih © (2006-04-19 17:04:00)Работаю с компопентом TTable, у которого есть свойство TableType= ttASCII - текстовая таблица, в которой поля разделяются запятыми и заключаются в кавычки. Т.е. есть текстовый файл(текстовая таблица) данные из которого нужно перебросить в таблицу базы данных SQL. Вот файл и код
"Заготівельна дільниця","Иванов В. О.","01.03.06","2:14:44"
"Заготівельна дільниця","Башинський И. А.","01.03.06","8:02:44"
"Заготівельна дільниця","Петренко В. К.","01.03.06","8:14:44"if OpenDialog1.Execute thenВ процессе выполнения программы происходит ошибка. Подскажите пожалуйста в чём ошибка?
VremjaTable:=TTable.Create(nil);
with VremjaTable do begin
Active:=false;
TableName:=OpenDialog1.FileName;
TableType:=ttASCII;
end;
try
VremjaTable.Open;
VremjaTable.First;
while not VremjaTable.Eof do begin
if InsertQuery.Active then InsertQuery.Active:=false;
InsertQuery.Parameters[0].Value:=VremjaTable.Fields[0].Value;
InsertQuery.Parameters[1].Value:=VremjaTable.Fields[1].Value;
InsertQuery.Parameters[2].Value:=VremjaTable.Fields[2].Value;
InsertQuery.Parameters[3].Value:=VremjaTable.Fields[3].Value;
InsertQuery.ExecSQL;
VremjaTable.Next;
end;
YurikGL (2006-04-20 22:42:00) [1]
> DimMih © (20.04.06 09:43) [12]
Попробуйте его явно присвоить перед присвоением параметров... Если не получится - приведите код
DimMih (2006-04-20 09:43:00) [2]Уважаемый YurikGL, текст запроса находится не в самом коде, а в компоненте TADOQuery. Проблема я думаю в "текстовой таблице". При открытии таблицы не определяются её поля. VremjaTable.FieldCount=1, а должно быть 4
DimMih (2006-04-20 09:29:00) [3]Для Desdechado:"Оно в компоненте"
YurikGL (2006-04-19 21:55:00) [4]
> DimMih © (19.04.06 17:47) [7]
Приведи код целиком с
> Insert into WorkTime
> ( Uchastok, Ispolnitel, Data, Vremja) values
> ( :Uchastok, :Ispolnitel, :Data, :Vremja)
и последующим присвоением параметров.
Плохиш (2006-04-19 17:59:00) [5]
> DimMih © (19.04.06 17:47) [7]
Так чему равно InsertQuery.Parameters.Count?
PS. А из строчкиif InsertQuery.Active then InsertQuery.Active:=false;проверку можно выкинуть, да и саму строчку надо вынести за цикл.
Desdechado (2006-04-19 17:54:00) [6]и где оно в тексте?
DimMih (2006-04-19 17:47:00) [7]
Insert into WorkTime
( Uchastok, Ispolnitel, Data, Vremja) values
( :Uchastok, :Ispolnitel, :Data, :Vremja)
Плохиш (2006-04-19 17:41:00) [8]
> А это не параметры????
Нет. Это попытка присвоить что-то коллекции Parameters. Но вот это "List index out of bounds (0)"говорит, что в коллекции элементов нет. Начни читать чего-нибуть.
DimMih (2006-04-19 17:38:00) [9]А это не параметры????
if InsertQuery.Active then InsertQuery.Active:=false;
InsertQuery.Parameters[0].Value:=VremjaTable.Fields[0].Value;
InsertQuery.Parameters[1].Value:=VremjaTable.Fields[1].Value;
InsertQuery.Parameters[2].Value:=VremjaTable.Fields[2].Value;
InsertQuery.Parameters[3].Value:=VremjaTable.Fields[3].Value;
InsertQuery.ExecSQL;
Плохиш (2006-04-19 17:34:00) [10]Параметров в sql-запросе нет.
DimMih (2006-04-19 17:32:00) [11]При присвонии значения первого параметра запроса выдается ошибка "List index out of bounds (0)".
Плохиш (2006-04-19 17:26:00) [12]
> В процессе выполнения программы происходит ошибка. Подскажите
> пожалуйста в чём ошибка?
T.e. ты предлагаешь нам установить mssql-сервер, делфи, создать базу данных, в этой базе какую-нибуть таблицу, создать проект в делфи, вставить туда твой код, попытаться его выполнить и если возникнет ошибка, то постараться её решить и о решении сообщить тебе? Хорошо я готов за это взяться, но только после предоплаты 2000 евро.
Desdechado (2006-04-19 17:22:00) [13]шел по улице, стукнули по голове
подскажите, за что?