Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> txtSQL czyli tekstowa baza SQL, jak by takową napisać
Neotion
post
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 13.09.2004

Ostrzeżenie: (0%)
-----


Nurtuje mnie ostatnio fakt że wiele serwerów nie oferuje baz SQL, i wiele osób nie ma do takich baz dostępu. I w mojej niezmierzonej chęci pisania (programów a nie opowiadań) wpadłem na pomysł żeby stworzyć tekstową bazę obsługującą język SQL. Moje pierwotne założenia są takie:

Struktura bazy:

|-Baza (jako katalog) : w nim plik opisujący tabele
```|-Tabela1 (jako katalog): w niej plik opisujący pola i ich właściwości (auto_increment, INT, itd...), pliki rekordów
``````|-Rekord1 (jako plik): zawartość pól opisanych w pliku właściwości tabeli \
``````|-Rekord2 (jako plik): jak wyżej tylko nazwany inaczej / każdy rekord musiałby mieć inną nazwe (ID)
```````...
```|-Tabela2 (jako osobny katalog): i jak wyżej
```...
|-Baza2


i tak dalej...

Co wy na to?

Ten post edytował Neotion 11.10.2004, 17:07:03


--------------------
current: nexcite cms (0.2.5) running on top of netsource framework (0.5.3)

workbench: nsapi | php 5.1.2 | mysql 5.0.18 | phpmyadmin 2.9 rc1 | zend studio 5.2.0 | apache/2.2.0 (linux/suse)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
Vertical
post
Post #2





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


...Podobnie napisany jest MySQL, z tym, że bez plików *.TXT. Jeśli uda Ci się zrobić, żeby pliki tekstowe reagowały na zapytania SQL... To z pewnością pogratuluję

Ten post edytował Vertical 11.10.2004, 17:39:58
Go to the top of the page
+Quote Post
sf
post
Post #3





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Hm, wydaje mi się to bezcelowe... Przeważnie na darmowych stronach trzyma się rzeczy mało skomplikowane. Jeśli ktoś sie decyduje na coś poważniejszego to wykup konta z bazą SQL nie jest dla niego dużym wydatkiem.

SQL to wygoda i szybkość.

Pliki tekstowe tego nie oferują i nic tego nie zmieni. System, który chcesz napisać raczej wszystko spowolni jeszcze bardziej.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
toszcze
post
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.12.2003

Ostrzeżenie: (0%)
-----


Cytat(Vertical @ 2004-10-11 18:39:17)
Jeśli uda Ci się zrobić, żeby pliki tekstowe reagowały na zapytania SQL... To z pewnością pogratuluję

A czemu by nie?
Wprawdzie funkcjonalnosc ma to dosc ograniczona, ale do wiekszosci zastosowan wystarczy.


--------------------
WebHelp.pl
Go to the top of the page
+Quote Post
Neotion
post
Post #5





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 13.09.2004

Ostrzeżenie: (0%)
-----


Trzebaby to tak zrobić by było całkowicie kompatybilne z SQL. A napisać dlatego że byłaby to alternatywa dla mySQL. Tylko że sam tego nie napiszę a zeev suraski mi raczej wiele nie pomoże..

Ten post edytował Neotion 14.10.2004, 11:51:49


--------------------
current: nexcite cms (0.2.5) running on top of netsource framework (0.5.3)

workbench: nsapi | php 5.1.2 | mysql 5.0.18 | phpmyadmin 2.9 rc1 | zend studio 5.2.0 | apache/2.2.0 (linux/suse)
Go to the top of the page
+Quote Post
rogrog
post
Post #6





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

Ostrzeżenie: (0%)
-----


szczerze mowiac kiedys tez sie nosilem z takim pomyslem ale postanowilem sobie dac spokój

dla mnie największym problemem było zdaje się odpowiednie parsowanie zapytań SQL - baza txtSQL na sf.net działa za pomocą parametrów przekazywanych w tablicach a nie za pomocą zapytania sqlowskiego

w zasadzie coś takiego ciężko nazywać sqlem (sama nazwa - Structured Query Language). dlatego jeśli uda Ci się napisać odpowiedni parser i nieźle działajace bazy na plikach textowych to gratuluję. Oczywiście w pojedynkę można się pokusić tylko o podstawową funkcjonalność bo przecież nad prawdziwymi bazami pracują sztaby ludzi...


--------------------
Go to the top of the page
+Quote Post
toszcze
post
Post #7





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 18.12.2003

Ostrzeżenie: (0%)
-----


Cytat(rogrog @ 2004-10-19 22:50:35)
baza txtSQL na sf.net działa za pomocą parametrów przekazywanych w tablicach a nie za pomocą zapytania sqlowskiego

Sluszna uwaga. ;)
Ale ten 'silnik' obsluguje zapytania SQLowe (chociaz rowniez ma sporo ograniczen).


--------------------
WebHelp.pl
Go to the top of the page
+Quote Post
ARJ
post
Post #8





Grupa: Zarejestrowani
Postów: 453
Pomógł: 22
Dołączył: 20.09.2004
Skąd: Kraków - NH -

Ostrzeżenie: (0%)
-----


jeśli na serwerze jest brak bazy SQL można użyć darmowej bazy FreeSQL
gdy uczyłem się php założyłem konto na friko i wykorzystywałem tą baze do nauki.


--------------------
Warsztat: Windows 7 Pro 64bit | Apache 2.2 | PHP 5.2 | MySQL 5.0 | PHPmyadmin 2.6.4
Go to the top of the page
+Quote Post
bregovic
post
Post #9





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

Ostrzeżenie: (0%)
-----


Phi... Jak tylko PHP5 wejdzie na wiecej serverow, to takie rozwazania bedziecie mogli sobie szczesliwie odpuscic. SQLIte rozwiazuje jakiekolwiek problemy dotyczace skladowania danych gdy brak servera baz danych...


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
DeyV
post
Post #10





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




o ile oczywiście hostodawca zdecyduje się na udostępnienie SQLite, co wcale nie będzie (jak sądzę) standardem.


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
bregovic
post
Post #11





Grupa: Zarejestrowani
Postów: 562
Pomógł: 15
Dołączył: 8.08.2003
Skąd: Denmark/Odense

Ostrzeżenie: (0%)
-----


DeyV: Czemu nie? Co moze stac na drodze?


--------------------
Prank - for the fun. Mac - for the simplicity. Deviantart - for the kick.
Life is ours, We live it our way -- Metallica
Go to the top of the page
+Quote Post
splatch
post
Post #12





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Co do pisanai silnika - sam napisałem część czegoś takiego prz y pomocy Bory. Całość ma zaimpletowany proste wybieranie przy pomocy sql oraz wyświetlanie. Nie jest to może coś specjalnego.. no i do tego od dłuższego czasu stoi winksmiley.jpg. Jeśli ktoś jest zainteresowany podeślę źródła na mail.


--------------------
Łukasz Dywicki
Independent Java and open source software consultant.
Blog - Java, OSGi, integracja oprogramowania..
Go to the top of the page
+Quote Post
DeyV
post
Post #13





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Cytat
DeyV: Czemu nie? Co moze stac na drodze?

Biznes?
Dlaczego masz dać klientom coś, co
a) ma podobne możliwości
cool.gif bardziej obciąża maszynę
c) jest jednak wolniejsze
jeśli możesz kazać zapłacić sobie za mysql albo pg dodatkową kasę, i mieć przynajmniej pewność, że nie będzie Ci to spowalniać maszyny?


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
Neotion
post
Post #14





Grupa: Zarejestrowani
Postów: 67
Pomógł: 0
Dołączył: 13.09.2004

Ostrzeżenie: (0%)
-----


Prześlij mi tą bazę splatch. może wykorzystam jako podstawę. Ale weźcie pod uwaę że SQLite działa na jednym pliku i to chba znacznie opóźnia działanie tej bazy no nnie?


--------------------
current: nexcite cms (0.2.5) running on top of netsource framework (0.5.3)

workbench: nsapi | php 5.1.2 | mysql 5.0.18 | phpmyadmin 2.9 rc1 | zend studio 5.2.0 | apache/2.2.0 (linux/suse)
Go to the top of the page
+Quote Post
KeNio
post
Post #15





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 28.11.2004

Ostrzeżenie: (0%)
-----


Neotion, nie musisz już myśleć o txtSQL. Ktoś dawno to zrobił za ciebie tongue.gif
Właźcie tutaj: http://txtsql.sourceforge.net/
Oraz co nieco po PL: http://www.cms.rk.edu.pl/article-56.html

Ten post edytował KeNio 28.11.2004, 13:59:49
Go to the top of the page
+Quote Post
tiraeth
post
Post #16





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Kenio szybki jesteś smile.gif Bodajże 4 post od góry...

Co do parsowania zapytań.... czy nie mozna zrobić czegoś takiego:
  1. <?php
  2. // Poniższa zmienna przetrzymuje nazwę bazy
  3. $database_name = 'baza';
  4. $query = &#092;"SELECT * FROM table LIMIT 0, 1\";
  5.  
  6. if(eregi('SELECT', $query))
  7. {
  8. if(eregi('LIMIT', $query))
  9. {
  10. $str = explode('LIMIT', $query);
  11. $limit = $str[1];
  12. $limit = str_replace(' ', '', $limit);
  13. $help = explode(',', $limit);
  14. $start = $help[0];
  15. $howmany = $help[1];
  16. }
  17. else
  18. {
  19. $start = 0;
  20. $howmany = -1;
  21. }
  22.  
  23. $a = str_replace('LIMIT', 'FROM', $query);
  24. $a = explode('FROM', $a);
  25. $a[1] = str_replace(' ', '', $a[1]);
  26. $table_name = $a[1];
  27.  
  28. // Zmienna $query_type przetrzymuje typ zapytania (select, insert, update, drop etc.)
  29. $query_type = &#092;"Selecting data from base\";
  30. preg_match(&#092;"/SELECT (.*) FROM/\", $query, $sel);
  31. $select = $sel[0][0];
  32. $records = (eregi('*', $select)) ? read_all_records($table_name) : explode(',', $select);
  33.  
  34. // Utworzona tablica $records przetrzymuje wszystkie nazwy pól, z których pobierze
  35. y recordy
  36.  
  37. foreach($records as $key => $record_title)
  38. {
  39. $handle = file($database_name.'/'.$table_name.'/'.$record_title);
  40. $end = ($howmany == -1) ? count($handle) : $howmany;
  41. for($i=$start; $i<$end; $i++)
  42. {
  43. $selected[$record_title][] = $handle[$i];
  44. }
  45. }
  46. }
  47.  
  48. // Wywalamy przykładowe dane
  49. for($i=0; $i<count($selected); $i++)
  50. {
  51. echo $selected['tutaj_sobie_jakies_pole_z_bazy'][$i].'<br />';
  52. }
  53. ?>

?

Taki sobie przykładowe zapytanie smile.gif Narazie obsługuje tylko SELECT i LIMIT tongue.gif Można przerobić aby były to funkcje, czy też klasy ale to już zależy od Ciebie... myślę, że fajnie rozwiązane smile.gif

Ten post edytował Tiraeth 5.12.2004, 17:34:37
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 10:28