![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() 1.Как удалить форму,которая при запуске появляется первой?И из оставшихся выбрать ту,которая будет появлятся после удаления этой формы?
2. Код:
qtxt:='Select Data,Peni,T.Name '+ ' From Tovari t,Vozvrat v,Klienti k '+ ' Where t.ID_tov=v.ID_tov and k.ID_kl=v.ID_kl and k.ID_kl='''+FormMain.Edit9.Text+''''; With Query5 do begin Sql.Clear; Sql.Add(Qtxt); Open; end; while not Query5.Eof do begin Qtxt:= 'Insert into IstKl(Data,Sum,Deistvie) '+ 'Values ( '''+DateToStr(Query5['Data'])+''','''+IntTostr(Query5['Peni'])+''','''+s3+Query5['Name']+''')'; With Query1 do begin Sql.Clear; Sql.Add(Qtxt); execSQL; end; Query5.Next; end; В строке Query5.Next; выдает ошибку: Код:
General SQL error. [Microsoft][ODBC SQL Server Driver][SQL Server]String or binary data would be truncated. [Microsoft][ODBC SQL Server Driver][SQL Server]The statment has been terminated. Подскажите в чем тут проблема? Если нужно,могу выложить весь код. |
#2
|
||||
|
||||
![]() 1. А нафик вы вообще это так делаете? Все это громадье кода можно засунуть в одну SQL-инструкцию. Примерно так:
Код:
Query5.SQL.Text := 'insert into IstKl (Data,Sum,Deistvie) (select Data,Peni,T.Name from Tovari T inner join Vozvrat V on V.ID_tov=T.ID_tov inner join Klienti K on K.ID_kl=V.ID_kl where K.ID_kl=:ID_kl)'; Query5.Parameters.ParamValue['ID_kl'] := FormMain.Edit9.Text; Query5.ExecSQL; 3. У вас точно поле ID_kl строковое? Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
![]() 1.Пишу курсовую и чтобы потом не было притензий у преподавателя,делаю по его шаблонам.
ID_kl поле int,но это вроде ничего не меняет. Всеже выложу весь юнит: Код:
procedure TFormIstKl.FormActivate(Sender: TObject); var s1,s2,s3:string; begin s1:='Âçÿë òîâàð:'; s2:='Ïîïîëíèë ñ÷åò'; s3:='Óïëàòèë ïåíè çà òîâàð:'; Label1.Caption:=FormMain.Edit2.Text+' '+FormMain.Edit3.Text+' '+FormMain.Edit4.Text+' '; Qtxt:= 'Create table IstKl (Data datetime,Sum numeric,Deistvie varchar(20)) '; With Query1 do begin Sql.Clear; Sql.Add(Qtxt); execSQL; end; qtxt:='Select Data,Stoim,t.Name '+ 'From Tovari t,Vidacha v,Klienti k '+ 'Where t.ID_tov=v.ID_tov and k.ID_kl=v.ID_kl and k.ID_kl='''+FormMain.Edit9.Text+''''; With Query2 do begin Sql.Clear; Sql.Add(Qtxt); Open; end; qtxt:='Select Data,Summa '+ 'From KL_Schet c,Klienti k '+ 'Where k.ID_kl=c.ID_kl and k.ID_kl='''+FormMain.Edit9.Text+''''; With Query3 do begin Sql.Clear; Sql.Add(Qtxt); Open; end; qtxt:='Select Data,Peni,T.Name '+ ' From Tovari t,Vozvrat v,Klienti k '+ ' Where t.ID_tov=v.ID_tov and k.ID_kl=v.ID_kl and k.ID_kl='''+FormMain.Edit9.Text+''''; With Query5 do begin Sql.Clear; Sql.Add(Qtxt); Open; end; while not Query2.Eof do begin Qtxt:= 'Insert into IstKl(Data,Sum,Deistvie) '+ 'Values ( '''+DateToStr(Query2['Data'])+''','''+IntTostr(Query2['Stoim'])+''','''+s1+Query2['Name']+''')'; With Query1 do begin Sql.Clear; Sql.Add(Qtxt); execSQL; end; Query2.Next; end; while not Query3.Eof do begin Qtxt:= 'Insert into IstKl(Data,Sum,Deistvie) '+ 'Values ( '''+DateToStr(Query3['Data'])+''','''+IntTostr(Query3['Summa'])+''','''+s2+''')'; With Query1 do begin Sql.Clear; Sql.Add(Qtxt); execSQL; end; Query3.Next; end; while not Query5.Eof do begin Qtxt:= 'Insert into IstKl(Data,Sum,Deistvie) '+ 'Values ( '''+DateToStr(Query5['Data'])+''','''+IntTostr(Query5['Peni'])+''','''+s3+Query5['Name']+''')'; With Query1 do begin Sql.Clear; Sql.Add(Qtxt); execSQL; end; Query5.Next; end; qtxt:='Select * From IstKl Order by data desc'; With Query4 do begin Sql.Clear; Sql.Add(Qtxt); Open; end; qtxt:='Drop Table IstKl'; With Query1 do begin Sql.Clear; Sql.Add(Qtxt); ExecSQL; end; end; Отсюда видно,что выполняется 2 аналогичных операции и никаких ошибок не выдает,а когда добавил код из первого сообщения,появились проблемы. |
#4
|
|||
|
|||
![]() И еще это "громадье" нужно,чтобы в поле Deistvie записывались данные не толко из базы,а еще и из переменных s1,s2,s3. Я придумал лишь такой способ это осуществить
|
#5
|
||||
|
||||
![]() Цитата:
Цитата:
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#6
|
|||
|
|||
![]() вроде работает верно и с кавычками и без
|
#7
|
|||
|
|||
![]() Ребята помогите сделать правильный запрос в базу данных
вот стандарт Код:
b := rs.FormatQuery('INSERT INTO '+DBRec.table1+' (BanCreate, HDDSN, Name, IPAddr, BanTime, Reason, SteamId, UUID) '+ 'VALUES (%s,%s,%s,%s,%d,%s,%s,%s)', [SqlDT2Str(p^.DateTime), p^.HddSN, p^.Name, p^.IPAddr, p^.min, p^.Reason, p^.SteamId, p^.UUID]); Код:
b := rs.FormatQuery('INSERT INTO '+DBRec.table1+' (player_id,player_ip,player_nick,admin_ip,admin_id,admin_nick,ban_type,ban_reason,ban_created,ban_length,server_name,server_ip, SteamId, UUID) '+ 'VALUES (%s,%s,%s,'''','''',''MyAC'',''S'',%s,%d,%d,''MyAC Anticheat'','''')', [p^.HddSN, p^.IPAddr, p^.Name, p^.Reason, SqlDT2Str(p^.DateTime), p^.min, p^.SteamId, p^.UUID]); Цитата:
PHP код:
PHP код:
http://depositfiles.com/files/wvsx9y6sg |