19. april 2004 - 01:45Der er
9 kommentarer og 1 løsning
Problem med insert til temptabel
Hej eksperter I min AccessFrontend har jeg en listbox hvor multi select er aktiveret, default, er alle valgt, hvor je så sender '-1;' som parameter ellers sendes de valgte typer f.eks: '22;23;56;'
Nu vil jeg så gerne i min stored procedure kunne afgøre hvilke parametre der anvendes, dertil har jeg lavet nedenstående Stored Procedure, men når jeg vil gemme den får jeg følgende besked "ADO error: There is already an object named #tempfrasted in the database",
Hvad gør jeg ??? Alter Procedure LP1 ( @Fsted nvarchar(2000) --Frastedsvariabel ) As declare @T nvarchar(3) --Tempvariabel declare @T1 int --Tempvariabel --sæt @T= 3 førstetegn i @Fsted SET @T= left(@Fsted,3) --Hvis @T er lig -1; hent alle frasteder ind i #t if @T='-1;' begin set nocount on select frastednr into #tempfrasted from tblrutedata_kgk --where (not(frastednr is null)) group by frastednr order by frastednr end
else if @T <>'-1;' --Hent Valgte frasteder ind i #t
begin set nocount on create table #temp (Frasteder varchar(50)) While len(@Fsted)>0 begin set @T1=charindex(';',@Fsted) insert into #temp values(substring(@Fsted,1,@T1-1)) set @Fsted = right(@Fsted,len(@Fsted)-@T1) --hent data for valgte frasteder Declare @Frasted varchar(50) DECLARE FrastedsCursor CURSOR FOR (SELECT Frasteder FROM #temp) OPEN FrastedsCursor FETCH Next FROM FrastedsCursor into @Frasted WHILE @@Fetch_status = 0 BEGIN select frastednr into #tempfrasted from tblrutedata_kgk WHERE frastednr = @Frasted FETCH Next FROM FrastedsCursor into @Frasted END CLOSE FrastedsCursor DEALLOCATE FrastedsCursor end end set nocount off select * from #tempfrasted return
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
declare @T nvarchar(3) --Tempvariabel declare @T1 int --Tempvariabel --sæt @T= 3 førstetegn i @Fsted set @T= left(@Fsted,3) set nocount on if @T='-1;' begin -- alle frasteder select frastednr into @tempfrasted from tblrutedata_kgk --where (not(frastednr is null)) group by frastednr order by frastednr end else begin -- Valgte frasteder while (len(fsted)>0) do begin set @t1=charindex(';',@fsted) insert into @tempfrasted select frastednr from tblrutedata_kgk where frastednr = substring(@Fsted,1,@T1-1)) set @Fsted = right(@Fsted,len(@Fsted)-@T1) end end select * from @tempfrasted go
hej Trer, jeg har en formular (MS Access) med 9 listbokse, hvorfra mine kriterier kommer, jeg lytter gerne til forslag til optimering af min performance
set @T= left(@Fsted,3) set nocount on if @T='-1;' begin
-- alle frasteder --declare @tempfrasted (frastedsnr varchar(50)) select frastednr into @tempfrasted from tblrutedata_kgk group by frastednr order by frastednr
end set nocount off select * from @tempfrasted return
insert into @tempfrasted select distinct frastednr from tblrutedata_kgk order by frastednr
da @tempfrasted variablen jo allerede findes ( og i øvrigt ikke kan oprettes med en SELECT INTO )
Bemærk at jeg har fjernet GROUP BY og indsat en DISTINCT i stedet. Det er lidt renere SQL at skrive således - omend jeg ikke tror det giver bedre performance
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.