19. november 2007 - 21:13Der er
14 kommentarer og 2 løsninger
ADODB connection eller alternativ, til MS SQL / Navision
Jeg skal hente data ud af en MS SQL_SERVER 2000 som skal JSON encodes, eller endnu bedre, bruges i AMFPHP.
Mit problem er, at der anvendes en eller anden vandvittig collation på tabellerne som alle er oprettet igennem Navision.
Jeg har f.eks. tabeller der hedder (hold nu fast) [DK idé-nyt as$Price Runner] - det er jo helt hen i vejret, apostroffer og jeg skal give dig skal jeg.
Nå men jeg har naturligvis forsøgt med mssql_query uden held, har forsøgt med "$conn = new COM ("ADODB.Connection")" uden held, alle fejler/snubler over de latterlige tabelnavne.
Hvad har jeg af alternativer ?? Jeg SKAL hive data ud og det er udelukket at ændre på SQL Serveren, der er pt. over 35.000 tabeller så det er ikke noget man lige piller ved.
Altså det burde være muligt at omdøbe alle tabellerne, hvis du har mulighed for det. Denne SQL læser alle tabeller : select name, user_name(uid) from sysobjects where type='U' and name like 'DK idé-nyt as$%'
På denne måde kan du også rename alle tabellerne men du skal lige slå opdatering af systemtabeller til først :
----------- sp_configure 'allow updates',1 go reconfigure with override go
Desværre er det 100% umuligt at foretage ændringer på sql serveren. Den er backend for Navision for koncernen i 4 lande 8-12 virksomheder. Så nej der kan ikke ændres på det.
De skal hentes løbende - skal bruge AMFPHP eller JSON_encode for at bruge data fra sql serveren i en Flex2 applikation.
I bund og grund ville det være fedt om man "bare" kunne bruge mssql_query og så ellers derudaf. Men på grund af en eller anden idiot der oprindeligt satte den server op, så gemmes data i et vandvittigt format, og man kalder tabeller for tåbelige ting med apostroffer, mellemrum, specialtegn og jeg ved ikke hvad. Det er vist primært fordi at det er Navision der opretter tabeller o.s.v.
arne_v : Jeg har ikke andet end helt basale rettigheder og der er som sagt MANGE tabeller - så at sidde og mappe dem vil næppe være muligt, men det bliver den sidste nødløsning. I realiteten bruges kun 8-10 stks pr regnskab så måske måske...
Hvordan ved jeg om det er MS lib eller FreeTDS ?? Det er på en Win 2003 Server, så jeg tror da det er MS lib. Kan jeg bruge FreeTDS på MS ?
Så går jeg ud fra at der ikke bliver ændret i selve tabel-strukturen. Jeg kunne forestille mig at man oprettede et view med et simpelt navn, til hver sin tabel.
Jeg har en idé om at di kan bruge cursors til at automatisk at oprette disse views. Hvis du kan vente lidt, kan jeg godt brygge et eksempel sammen til dig i aften.
arne_v forslog det samme igår aftes - jeg er ved at undersøge det pt. Det er sådan at jeg ikke har andet end select adgang til serveren, så det vil være Navision konsulenten der kommer til at foretage disse ændringer.
Tak for indsatsen :-)
Smid et svar begge to, så deler jeg sol og vind lige.
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.