Je travaille sur un script d'exploration réseaux (intranet), pour aller plus vite, je voudrais utiliser les threads mais perl me sort l'erreur :
mon code etant assez long j'en est fait un ayant la meme "structure" et souffrant de ce fait du meme probleme le voila :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 thread failed to start: DBD::ODBC::db prepare failed: handle 2 is owned by thread 224014 not current thread 1a70ac4 (handles can't be shared between threads and your driver may need a CLONE method added) at C:\DOCUME~1\Teddy\Bureau\thread.pl line 22. A thread exited while 3 threads were running.
Merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #!C:/Perl/bin/perl.exe -w use threads; use DBI; my $DSN = 'driver={SQL Server};Server=Vista\mssql; database=link; uid=sa;pwd=sigeme;'; my $dbh = DBI->connect("dbi:ODBC:$DSN", { odbc_cursortype => DBI::SQL_CURSOR_DYNAMIC, AutoCommit => 0 } ) or die ( db($DBI::errstr) ); my $i = 2; if ($ARGV[0] =~ /^http:\/\//g ) { while ($i) { --$i; my $thr = threads->new(\&unix, @ARGV); $thr->detach; } } sub unix { foreach my $url (@_) { my $l = $dbh->prepare("SELECT * FROM url"); $l->execute; print "$url"; } }
Partager