Avatar billede gregersp Nybegynder
01. juli 2008 - 12:40 Der er 6 kommentarer og
1 løsning

Varchars på over 255 bytes

Hey.

Jeg har problemer med overførsel af varchars længere end 255 bytes, fra ASE version 12.5 (ved ctlib) til min klient (et PHP-site).

Er der nogen, der har erfaringer med hvordan det kan gøres (helst uden at "caste" til TEXT, idet jeg laver en del unions mv, som ikke kan indeholde TEXT-felter. :-|

Både DBMS og site kører på windowsservere.
Avatar billede gigraf Nybegynder
01. juli 2008 - 13:34 #1
Stakkels dig! Sybase modulet til PHP er bygget paa de gamle Sybase 12.0 libs (laes Komplieret), dvs. der er kun en mulighed for at loese dette problem og det er at re-complilere sybase modulet.

Hvis du koere linux er dette en relativ nem sag, da source code mm. ligger paa nettet, og kan kompileres mod ASE 12.5.2 libs eller bedre 15.0.2 libs.

Hvis du koere windows, saa tror jeg muligvis du faa problemer, men du kan naturligvis proeve at finde sybase php sourcen og compiliere den med MS Visual C++ kompileren. (den kan du hente gratis paa nettet).
Avatar billede gregersp Nybegynder
09. juli 2008 - 09:59 #2
Mon det ville hjælpe at køre forbindelsen via ODBC? Der burde PHPs ODBC-modul jo så tage over, i stedet for php-sybase.

Jeg kan se at queries bliver returneret korrekt i fuld længde i f.eks. Sybase Infomaker og andre af de medfølgende klienter.
Avatar billede gigraf Nybegynder
09. juli 2008 - 11:11 #3
Rigtig god ide. Jeg gaetter du koere paa windows.

Et helt tredie alternativ er at du bruger FreeTDS istedet for Sybase modulet. Jeg har ikke testet det endnu, men det vil jeg straks goere. Saa skal jeg fortaelle dig om det loeser dit problem eller ej.
HVis ikke ikke du feks. bruge FreeTDS-ODBC, eller en nyere ODBC driver, saa gaar du rigtig nok uden om selve Sybase Modulet (fra PHP).

Laes evt. her;
http://www.freetds.org/userguide/php.htm
Avatar billede gregersp Nybegynder
09. juli 2008 - 12:45 #4
yes - "problemet" er at det netop skal køre på Windowsservere, så jeg håber at kunne lave en work-around på en eller anden måde. Hvis den måde er at køre forbindelsen over ODBC i stedet, vil det være helt fint.

Tak for linket, jeg vil læse lidt mere om freeTDS.
Avatar billede gigraf Nybegynder
09. juli 2008 - 12:59 #5
Okay, hvis du koere paa Windows, saa brug ODBC. jeg har lige testet det ganske kort here. Hvis du ikke allerede har skrevet for meget kode i Sybase PHP vil jeg foreslaa dig at bruge ODBC (syntaxen er lidt anderledes i ODBC).
Hvis du allerede har skrevet meget, saa kan det vaere en fordel at du bruger freetds. Saa skal du ikke aendre ret meget i din kode (search/replace).

Held og lykke.
Avatar billede gregersp Nybegynder
09. juli 2008 - 13:30 #6
Tak, jeg har selvfølgelig skrevet en generel database-klasse, så der kun skal rettes eet sted, hvis der skulle indføres en ny database-type.
Avatar billede gregersp Nybegynder
19. december 2008 - 14:54 #7
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester